让优秀变成一种习惯

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:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2019-03-19  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 6386
  • 日志数: 40
  • 建立时间: 2015-12-17
  • 更新时间: 2017-12-28

RSS订阅

Open Toolbar