class x:
def __init__(self):
self.y=None
self.sillyFunc(self.y)
def sillyFunc(self,argument):
if argument is None:
argument='my_name_as_argument'
self.printy()
def printy(self):
print self.y
根據我上面的代碼應打印> my_name_as_argument,我哪裏錯了?python不使用複製引用?爲什麼下面的代碼不工作呢?
Python使用call-by-sharing,它從不*改變引用指向的內容。這使得可變對象和不可變對象看起來被區別對待,儘管它們確實不是。在你的情況下,你只是將'my_name_as_argument'賦值給局部變量'argument' - 你永遠不會做任何會改變'self.y'的值。 – 2010-06-20 18:06:07