作者mantour (朱子)
看板Python
标题Re: [问题] 再请教一个问题
时间Sun Apr 27 19:46:43 2008
※ 引述《purestone (天空之子)》之铭言:
: 拜托各位高手指点一下..
: -----------------------------------------
: python 版:
: #!/usr/bin/env python
: # File name: class_init.py
: class Person:
: def __init__(self, name):
: self.name = name
: def say_hi(self):
: print 'Hello, my name is', self.name
这里我定义一个class叫做Person
每个Person物件有一个属性(attribute)叫做name
此外还定义了两个方法(method):
一个是 __init__()
__init__() 是一个用来初始化一个物件的函式,
在你建立一个新的物件时,就会自动执行
在这个例子里,__init__ 需要接受两个参数,
第一个是self,就是你建立的这个物件本身的名称
第二个是name,用来初始化这个新物件的"name"这个属性
另一个mothod是 say_hi()
say_hi的功能满明显的,就留到後面再解释
: p = Person('Swaroop')
现在我建立一个Person物件,叫做p , 并且传入一个初始化的参数 'Swaroop'
这样做的效果是会把 'p' , 'Swaroop' 当作参数,传给 __init__()
中的self , 跟 name
所以在__init__() 的定义中第一行
self.name = name
实际在这里做的事就是
p.name = 'Swaroop'
: p.say_hi()
当我呼叫 p.say_hi()时, say_hi(self) 中的self这个参数就是'p'
所以这边会执行
print 'Hello, my name is', p.name
而p.name在前一步中已经被设为'Swaroop'
所以输出的结果就是
Hello, my name is Swaroop
: python 版输出结果:
: $ python class_init.py
: Hello, my name is Swaroop
: -----------------------------------------------
: 请问上述程式的__init__功能是什麽?我知道是初始化,但初始化是什麽?
: self是有什麽涵义吗?为什麽最後一个say_hi()没有self?
: 请问class的功能是什麽?
: 拜托各位高手帮帮忙~我有在看书,但慧根不够,需要有人用白话一点的方式指点一下~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.213.158
※ 编辑: mantour 来自: 140.112.213.158 (04/27 19:51)
※ 编辑: mantour 来自: 140.112.213.158 (04/27 19:52)