您的位置:首页 > 编程语言 > Python开发

Python 对象 --组合,绑定

2017-07-12 21:36 176 查看

组合:

当对象之间无法继承和多继承时,此时可能需要用到组合。

比如一个水池里面有鱼和乌龟,此时肯定不能继承

组合代码如下:

class Turtle:
def __init__(self,x):
self.num = x

class Fish:
def __init__(self,x):
self.num = x

class Pool:
def __init__(self,x,y):
self.turtle = Turtle(x)
self.fish = Fish(y)

def print_num(self):
print("there are turtles %d, fish %d" % (self.turtle.num,self.fish.num))

pool = Pool(1,10)
pool.print_num()


类、类对象和实例对象

类定义后也叫类对象

比如下图的C便是类对象

类定义的属性都是静态属性,

当属性的名字和方法相同,属性会覆盖方法。如下:



为了避免名字上的冲突,大家需要遵守一些约定俗成的规矩:

1.不要试图在一个类里边定义出所有能想到的特性和方法,应该利用继承和组合机制来进行扩展

2.用不同的词性命名,如属性名用名词,方法名用动词

什么是绑定:

Python严格要求方法需要有实例才能被调用,这种限制其实就是python所谓的绑定概念

在类没有实例化时,不要调用类中的方法。如下:



之所以会出现这个error,是因为函数中没有self这个变量用来绑定真正的对象实例

可以通过使用__dict__来查看对象的属性。如下图,dd的属性是字典,内容为空

类中定义的属性和方法都是静态的,即使del CC,即将CC类删掉,CC的实例也依然可以调用CC中的方法,因为静态变量一直存在,直到程序退出才释放空间。尽量使用实例属性,不要使用类属性,类属性主要用来跟踪一些值

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: