组合:
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("水池里总共有乌龟 %d 只,小鱼 %d 条!" % (self.turtle.num, self.fish.num))
类、类对象、实例对象
观察一下代码:
对象属性会覆盖对象方法,注意观察如下内容:
什么是绑定?
python要求方法有实例才会被调用,观察一下代码:
没有self,实例对象是不能调用方法的
注意以上代码,x y在实例对象里有值,在类对象里没有值
观察一下代码:删除CC类,不能新的实例化,但是已经创建的实例对象还是可以使用,应为已在内存中
类的一些BIF:
issubclass:
isinstance(object,classinfo)
如果第一个参数不是对象,则永远返回False
如果第二个参数不是类,则抛出异常
hasattr(object,name)