Re: [問題] Python 新手問題 有關constructor和object

看板Python作者 (我是沒牌的營養師!)時間16年前 (2009/01/26 02:53), 編輯推噓8(803)
留言11則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《Luos (Soul)》之銘言: : 各位好~ : 小弟是第一次寫Python : 從java跳到Python總有點怪怪的... : 第一個遇到的問題是Python的constructor要怎麼做? : 通常在java時 會做一個object來傳入一些數值到constructorr裡 : 但是Python好像完全不一樣... : 剛剛爬了爬精華區也找不到有關constructor的文章.. : 小弟第一次發文 如有錯誤請多多包含>"< : 感謝各位的幫忙XD~~ class MyLover(object): def __init__(self, username, age): self.username = username self.age = age lover1 = MyLover('audrey', 20) lover2 = MyLover('madeleine', 23) print lover1.username, lover1.age print lover2.username, lover2.age 希望有幫上忙 :) -- 誠徵PHP網站工程師,熟MVC架構 http://blog.eddie.com.tw/ 全職、兼職可,意者請敲 :) http://www.eddie.com.tw/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.139.9

01/26 03:00, , 1F
喔喔 了解了~~ 還真是簡單易懂XD 感謝幫忙XD
01/26 03:00, 1F

01/26 03:12, , 2F
對不起 能請叫一下要怎麼做Object嗎?
01/26 03:12, 2F
不是很確定你指的"做object"的意思 是不是想要說類似在java裡面的"new"這個關鍵字? 以上面的例子來說,lover1 = MyLover('audrey', 20) 就是以MyLover這個類別,做一個lover1的object(我比較習慣叫它instance)出來 有錯再請指正 :)

01/26 03:14, , 3F
我做了A=B(1) 可是他說 name 'B' is not defined
01/26 03:14, 3F
※ 編輯: aquarianboy 來自: 122.116.139.9 (01/26 03:31)

01/26 03:44, , 4F
我把lover1 = MyLover('audrey', 20)放再另一個class裡 不過
01/26 03:44, 4F

01/26 03:45, , 5F
它說找不到 MyLover 我把兩個class再同一個資料夾裡
01/26 03:45, 5F

01/26 04:02, , 6F
NameError: name 'MyLover' is not defined
01/26 04:02, 6F
喔,那誤會大了 python不像java一樣強制規定每個class都存成同名檔案 而且一個檔案裡可以放多個class也是ok的 假設我把上面的例子存成aabbcc.py 那進入python的互動介面: >>> from aabbcc import MyLover >>> lover1 = MyLover('audrey', 20) <--這樣應該就找得到了 如果你還不熟悉from ... import ...是做什麼的 建議先別管類別的事了,先從基本的開始練習囉 其實,有別的程式語言背景不是壞事 只是當要跳到新的語言時,盡量只要帶過來"參考"就好 :) BTW, http://docs.python.org/index.html 是個不錯的開始 ※ 編輯: aquarianboy 來自: 122.116.139.9 (01/26 04:15)

01/26 04:21, , 7F
OMG 成功了....太感謝了~~~
01/26 04:21, 7F

01/26 04:46, , 8F
我正在看那個說=.=....請問一下怎麼做function call?
01/26 04:46, 8F

01/26 04:47, , 9F
從一個class叫另一個class的method 比如說 lover1.XXX()
01/26 04:47, 9F

01/26 14:40, , 10F
你寫的就是答案呀 XD
01/26 14:40, 10F

01/27 05:05, , 11F
結果是function要加個self=.= 謝謝啦XD
01/27 05:05, 11F
文章代碼(AID): #19VBKyvB (Python)
文章代碼(AID): #19VBKyvB (Python)