对象
多态:可对不同类型的对象执行相同的操作,而这些操作就像“被施了魔法”一样能够
正常运行。
封装:对外部隐藏有关对象工作原理的细节。
继承:可基于通用类创建出专用类。
创建自定义类
>>> class Person:
... def set_name(self,name):
... self.name=name
... def get_name(self):
... return self.name
... def greet(self):
... print("hello,world!I'm{}.".format(self.name))
...
>>> foo=Person()
>>> bar=Person()
>>> foo.set_name('lucy')
>>> bar.set_name('lili')
>>> foo.greet()
hello,world!I'mlucy.
>>> bar.greet()
hello,world!I'mlili.
如果foo是一个Person实例,可将foo.greet()视为Person.greet(foo)的简写,但后者的多
态性更低。
属性、函数和方法
>>> class Class:
... def method(self):
... print('I have a self!')
...
>>> def function():
... print("I don't...")
...
>>> instance = Class()
>>> instance.method() I have a self!
>>> instance.method = function
>>> instance.method() I don't...
有没有参数self并不取决于是否以刚才使用的方式(如instance.method)调用方法。
>>> class Bird:
... song = 'Squaawk!'
... def sing(self):
... print(self.song)
...
>>> bird = Bird()
>>> bird.sing()
Squaawk!
>>> birdsong = bird.sing
>>> birdsong()
Squaawk!
私