看板 Python 關於我們 聯絡資訊
小弟的一些見解供參考 用關鍵字class所定義出來的是使用者自訂的資料型態 所謂型態 其實可以當作是某一類東西(或稱物件) 在Python裡 整數、字串、list等都是一種型態 型態有如種類的說法 例如紙的種類有圖畫紙、西卡紙等 各種紙的性質可能不太相同 這裡寫程式的人定義一個叫做Person的型態(或稱類別) 其內除了定義初始化的屬性 還有定義say_hi的屬性(或稱方法) 所謂『初始化的屬性』是說 一旦寫程式的人要用這個新的類別 如他在底下 p = Person('Swaroop') 就是建立一個Person的型態 然後將其指派到p這個變數之中 至於 __init__ 是Python裡頭內建的用法 當建立新類別的同時 __init__會自動執行 在這裡是說當變數p被建立後 變數p同時也就有一個屬性 叫做p.name 所以如果這是引入到直譯器中 便可以用 print p.name 來看p.name的內容 結果會是 'Swaroop' 至於self 他本身就是自己的意思 在定義內 這是是指型態自己本身 當型態用變數建立後 self就是該變數的名稱 say_hi是這種型態裡頭的一種屬性(或稱方法) 用p.say_hi()來呼叫 就會去執行say_hi裡的陳述 這裡所謂的屬性 行話稱方法 方法的意義跟函數一樣 兩者的差別是方法是自訂型態中使用者自訂的 如list裡也有sort、pop等方法可用 ※ 引述《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 : p = Person('Swaroop') : p.say_hi() : python 版輸出結果: : $ python class_init.py : Hello, my name is Swaroop : ----------------------------------------------- : 請問上述程式的__init__功能是什麼?我知道是初始化,但初始化是什麼? : self是有什麼涵義嗎?為什麼最後一個say_hi()沒有self? : 請問class的功能是什麼? : 拜託各位高手幫幫忙~我有在看書,但慧根不夠,需要有人用白話一點的方式指點一下~ -- 門外漢 http://aockc.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.134.104 ※ 編輯: monomorium 來自: 118.169.134.104 (04/26 21:26)