※ 引述《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)