classA(object):deftest(self):print('A.........')classB(A):passclassC(B):pass
c = C()
c.test()# A.........classA(object):deftest(self):print('A.........')classB(A):deftest(self):print('B.........')classC(B):pass
c = C()
c.test()# B.........classA(object):deftest(self):print('A.........')classB(A):deftest(self):print('B.........')classC(B):deftest(self):print('C.........')
c = C()
c.test()# c.speak() # AttributeError: 'C' object has no attribute 'speak'# C.........
classA:def__init__(self,name):
self._name = name
@propertydefname(self):return self._name
@name.setter
defname(self, name):
self._name = name
classB:def__init__(self, name):
self._name = name
@propertydefname(self):return self._name
@name.setter
defname(self, name):
self._name = name
a = A('葫芦娃')
b = B('黑猫警长')defspeak(obj):print('你好%s'%obj.name)
speak(a)
speak(b)# 你好葫芦娃# 你好黑猫警长
lst=[1,2,3,4]str="python"print(len(lst))# 4print(len(str))# 6# print(len(a)) # TypeError: object of type 'A' has no len()classA:def__len__():return100
a=A()print(len(a))# 100
a=10
b=True# print(len(a)) # TypeError: object of type 'int' has no len()# print(len(b)) # TypeError: object of type 'bool' has no len()