看板 Python 關於我們 聯絡資訊
※ 引述《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)