作者aquarianboy (我是沒牌的營養師!)
看板Python
標題Re: [問題] Python 新手問題 有關constructor和object
時間Mon Jan 26 02:53:44 2009
※ 引述《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
1F:推 Luos:喔喔 了解了~~ 還真是簡單易懂XD 感謝幫忙XD 01/26 03:00
2F:推 Luos:對不起 能請叫一下要怎麼做Object嗎? 01/26 03:12
不是很確定你指的"做object"的意思
是不是想要說類似在java裡面的"new"這個關鍵字?
以上面的例子來說,lover1 = MyLover('audrey', 20)
就是以MyLover這個類別,做一個lover1的object(我比較習慣叫它instance)出來
有錯再請指正 :)
3F:→ Luos:我做了A=B(1) 可是他說 name 'B' is not defined 01/26 03:14
※ 編輯: aquarianboy 來自: 122.116.139.9 (01/26 03:31)
4F:推 Luos:我把lover1 = MyLover('audrey', 20)放再另一個class裡 不過 01/26 03:44
5F:→ Luos:它說找不到 MyLover 我把兩個class再同一個資料夾裡 01/26 03:45
6F:推 Luos:NameError: name 'MyLover' is not defined 01/26 04:02
喔,那誤會大了
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)
7F:推 Luos:OMG 成功了....太感謝了~~~ 01/26 04:21
8F:推 Luos:我正在看那個說=.=....請問一下怎麼做function call? 01/26 04:46
9F:→ Luos:從一個class叫另一個class的method 比如說 lover1.XXX() 01/26 04:47
10F:推 ericsk:你寫的就是答案呀 XD 01/26 14:40
11F:推 Luos:結果是function要加個self=.= 謝謝啦XD 01/27 05:05