Mas*_*rry 1 python reference python-2.7
在C++中,您可以执行以下操作:
int x = 10;
int &y = x;
y = 11;
cout << x << endl; // will print 11
Run Code Online (Sandbox Code Playgroud)
我怎么能在python中做类似的事情?试图self.session引用self.request.session:
self.session = self.request.session
Run Code Online (Sandbox Code Playgroud)
以下将使两者self.session和self.request.session引用相同的对象:
self.session = self.request.session
Run Code Online (Sandbox Code Playgroud)
如果您session通过两个引用中的任何一个进行更改,您将能够通过以下两者来观察更改:
self.session.set_foo(42)
self.request.session.get_foo() # returns 42
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您通过将其引用到其他地方来重新引用任一引用,那将会破坏链接:
self.session = another_session
Run Code Online (Sandbox Code Playgroud)
最后,重要的是要注意某些Python类型是不可变的.这包括整数,字符串和元组.虽然您可以对不可变对象进行多次引用,但不可变性会阻止您对该对象进行任何更改.
这与您的C++示例相关.如果你想拥有一个共享引用int,并且能够修改它int,你必须将int一个可变对象包装在内部,并分享对该可变对象的引用.