我知道Python不像Perl和其他人那樣使用引用,但是可以創建一個鏈接值簡單的變量,因爲它們引用相同的內存地址?我知道列表和字典的淺拷貝包含引用相同地址的值。將兩個變量指向Python中的相同值
>>> foo = 1
>>> bar = foo
>>> bar = 0
>>> foo
1
>>> foo = [1,2]
>>> bar = foo
>>> bar[1] = 0
>>> foo
[0,2]
參考在Perl
$ref = 1
$foo = \$ref
$bar = $foo
print $$bar //gives 1
$$foo = 0
print $$bar //gives 0
之所以是,我很好奇,怎麼可以做/砍死在Python。 舉一個具體的例子是,我希望給予一個類的兩個「同義」屬性。 我想,人們可以拉過一個shenanigan像這樣(未經檢驗的,對不起,如果錯)通過屏蔽第二個值:
class fake:
def __init__(self,template):
self.ref = template # keep alive
self.__dict___ = template.__dict__
self.__class___ = template.__class__
def __getitem__(self):
return self.ref.__getitem__
def __setitem__(self,value):
self.ref.__setitem__(value)
但是,這並不完全在我很好奇的精神,但如果黑客是唯一的方法,我會去那,並希望知道最好的方法。
在Python中,你會值存儲在某個對象,你可以參考一下。例如,你可以把它作爲唯一的元素放在列表中,例如'[x]',然後使用對列表的引用。或者你可以把它放在'dict'中,或者爲它創建一個'class'。 –