让优秀变成一种习惯
Python 构造函数和实例化
上一篇 /
下一篇 2017-06-29 10:06:50
/ 个人分类:学习
类 class Person:
类名称一般大写字母开头
构造函数
class Person:
def __init__(self,name,sex,age,lang,website):
self.name = name
self.sex = sex
self.age = age
self.lang = lang
self.website = website
首先呈现出来的一个名为__init__()的函数,注意这个函数时以两个下划线开始的,然后是init,最后是以两个下划线结束的。
这是一个函数,就跟我们此前了解的函数一样的函数,但是这个函数又有点奇怪,他的命名是用“__”开始和结束
明确一个概念,就是类是一种对象类型,和之前学过的数值,字符串,列表,元祖,字典等类型一样。比如这里构建的类名叫做Person
那么就是我们要试图建立一种对象类型,这种类型被称之为Person,就如同一种对象类型是list一样。
在构建Person类的时候,首先要做的是对这种类型进行初始化,也就是要说明这种类型的基础结构,一定这个类型对象被调用了,第一件事情就是要运行这个类型的基础结构,
也就是Person类的基本结构,就好比我们每个人,在头脑中都有关于人这样对象类型(对应着类),一旦遇到张三(张三是一个具体的人)我们首先要运行人这个类的基本结构,一个鼻子两只眼睛,鼻子下面一张嘴巴
如果张三符合这个基本结构,我们不会感到惊讶(不报错),如果张三不符合这个基本结构,(比如三只眼睛,巴掌嘴巴)吓人不(报错了)。
由于这个类是我们自己构造的,那么基本结构也是我们自己亲手构造的,在类中,基本结构是写在__init__()这个函数里面的。故这个函数称为构造函数,担负着对类进行初始化的任务。
还是回到Person这个类,如果按照上面的代码,写好了,是不是__init__()就运行起来了呢?当然不行了,这时候还没看到张三呢,必须看到张三才能运行。所谓看到张三,看到张三这样一个具体的实实在在的人
此动作,在Python中有一个术语,叫做实例化。当类Person实例化后立刻运行__init__()函数。
class Person:
def __init__(self,name,sex,age,lang,website):
self.name = name
self.sex = sex
self.age = age
self.lang = lang
self.website = website
info = Person('胡歌','boy',30,'Python','hege.io') #实例化Pesrson
print 'info.name=',info.name
print 'info.sex=',info.sex
print 'info.age=',info.age
print 'info.lang=',info.lang
print 'info.website=',info.website
在上面的代码中,建立的类Person,构造函数申明了这个类的基本结构:name,sex,age,lang,website
注意观察 info = Person('胡歌','boy',30,'Python','hege.io'),这段语句就是将类Person实例化了,也就是说在内存中创建了一个对象,这个对象的类型就是Person类型,这个Person
类型是什么样子的呢?就是__init__()所构造的样子,在实例化是,必须通过参数传入具体的数据:name=胡歌,sex = boy, age =30 lang = Python, website=hege.io
这样内存中就存在了一个对象,这个对象的类型就是Person然后通过赋值语句,与变量info建立引用关系。
收藏
举报
TAG: