作者dimen (一人吃二人补)
看板Python
标题[问题] default value for arguments..
时间Wed Jan 28 03:17:17 2009
hi, all:
我在国外的某个blog上看到一篇文章:
http://tinyurl.com/8t73xp
里面的一段程式码:
>>> class Foo(object):
... def __init__(self, name='', stuff=[]):
... self.name = name
... self.stuff = stuff
...
... def add_stuff(self, gadget):
... self.stuff.append(gadget)
...
>>> f = Foo()
>>> f.add_stuff('tree')
>>> f.stuff
['tree']
>>> g = Foo()
>>> g.stuff
['tree']
这结果跟我之前学的OOP有些不同..没实际执行一次,我会以为g.stuff应该是[]
虽然它底下有说原因:
What happens here is that default values for arguments are created by Python
only once per each function/method, at the time of its definition.
小的是python新手,看不太懂真正原因,不知道可否有前辈帮忙解说一下呢?
感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.131.240.242