0、在Python里组合很简单,直接在类定义中把需要的类放进去实例化就可以了
1、继承常常用于一个类的再分,比如男人是人。而组合用于“有一个”的场景
2、当类定义完成的时候,类定义就变成类对象
3、当对象的属性和方法名字相同时,属性会覆盖方法
4、num和count是类属性,x和y是实例属性
5、Python要求方法有实例才能调用,这就是Python的绑定概念,所以Python会把bb对象作为第一个参数传入,所以需要0个参数,实际传入1个参数
0、
>>> class C:
count = 0
def __init__(self):
C.count += 1
def __del__(self):
C.count -= 1
>>> a = C()
>>> b = C()
>>> c = C()
>>> C.count
3
>>> del a
>>> C.count
2
>>>
1、
class Stack:
def __init__(self,start=[]):
self.stack = []
for x in start:
self.push(x)#调用自身的方法初始化(在下面定义)
def isEmpty(self):
return not self.stack
def push(self,x):
self.stack.append(x)
def pop(self):
if not self.stack:
print('警告,我为空')
else:
return self.stack.pop()
def top(self):
if not self.stack:
print('警告,我为空')
else:
return self.stack[-1]
def bottom(self):
if not self.stack:
print('警告,我为空')
else:
return self.stack[0]
运行结果
>>> a = Stack()
>>> a.push(1)
>>> a.top()
1
>>> b = Stack([1,2,3])
>>> b.top()
3