
面向对象最重要的概念是类(Class)和实例(Instance),必须记住,类是抽象的模板,如Student,而实例是基于类创建的模板之一
每个具体的“对象”,每个对象都有相同的方法,但每个对象的数据可能不同。
推荐:Python教程
以Student类为例,在Python中,通过class关键词定义类:
classStudent(object): pass
class后面是类名,即Student,类名通常是大写开头的单词,然后是(object),这意味着这一类是从哪一类继承下来的,我继承的概念
以后再说,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。
定义Student类后,可以根据Student类创建Student实例,创建实例是通过类名+()实现的:
>>>bart=Student() >>>bart <__main__.Studentobjectat0x10a67a59> >>>Student <class'__main__.Student'>
可以看出,变量bart指向Student的例子,后0x10a67a590为内存地址,每个object的地址不同,而Student本身则不同
是一个类。
实例变量绑定属性可以自由给出,例如,实例bart绑定name属性:
>>>bart.name='BartSimpson' >>>bart.name 'BartSimpson'
因为类可以起到模板的作用,我们可以在创建实例时强制填写一些我们认为必须绑定的属性。定义一个特殊的__init__方法,在创建示例时,将name、score等属性绑定在一起:
classStudent(object): def__init__(self,name,score): self.name=name self.score=score
注意到__init__方法的第一个参数总是self,表示创建的例子本身。因此,在__init___方法内部可以将各种属性绑定到self,因为self
指向创建的例子本身。
有了__init__方法,在创建实例时,不能引入空参数,必须引入__init__方法匹配参数,但self不需要传输,Python解释器本身将传输实例变量:
>>>bart=Student('BartSimpson',59)
>>>bart.name
'BartSimpson'
>>>bart.score
59更多技术请关注Python视频教程。