面向对象最重要的概念就是类(Class)和实例(Instance),类是抽象的模板,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据都互相独立,互不影响。
定义类是通过class关键字:
class Myclass([object]):
pass
class后面紧接着是类名Myclass,类名通常是大写开头的单词,object表示要继承的父类,一个类可以有多个父类,多个父类之间用逗号隔开,如果没有继承类,默认使用object类,这是所有类最终都会继承的类,object可以省略,你甚至可以省略掉括号在python中也是允许的class Myclass:。
创建实例是通过ClassName()实现的:o = Myclass()
给一个实例变量绑定新的或修改属性:o.name = 'MyName'
定义类的方法:
python严格要求方法需要有实例才能被调用,这种限制其实就是python所谓的绑定概念。
class C:
def get_c():
print('i am c')
使用类对象直接调用C.get_c()正常打印
使用实例对象a = C()调用a.get_c()却报错"TypeError: get_c() takes 0 positional arguments but 1 was given"
class C:
def get_c(self):
print('i am c')
使用