面向对象-鸭子类型
Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’
python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象
也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。
例1:利用标准库中定义的各种‘与文件类似’的对象,尽管这些对象的工作方式像文件,但他们没有继承内置文件对象的方法
class File: def read(self): pass def write(self): pass class Disk: def read(self): print('disk read') def write(self): print('disk write') class Text: def read(self): print('text read') def write(self): print('text write') disk=Disk() text=Text() disk.read() disk.write() text.read() text.write() #序列类型:列表list,元组tuple,字符串str l = list([1, 2, 3]) t=tuple(('a','b')) s=str('hello') print(l.__len__()) print(t.__len__()) print(s.__len__()) def len(obj): return obj.__len__() print(len(l)) print(len(t)) print(len(s))