作者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