擅长:python、mysql、java
<p>你想要的行为可以用一个类来模拟,尽管有点笨拙和不雅:</p>
<pre><code>class reference:
def __init__(self, num): self.num = num
def get(self): return self.num
def set(self, num): self.num = num
def __mul__(self, other): return self.num * other
def __div__(self, other): return self.num / other
def __add__(self, other): return self.num + other
def __sub__(self, other): return self.num - other
</code></pre>
<p>在这些运算符过载的情况下,将出现以下情况:</p>
<pre><code>a = reference(5)
b = a
print a.get()
print a * 4
</code></pre>
<p>印刷品</p>
<pre><code>5
20
</code></pre>
<p>我意识到如果你想引用不同的类型,这是相当麻烦的,因为你必须为每一个类型重载你需要的操作符,但是这是最接近于模拟指针的。你知道吗</p>
<hr/>
<p>或者,您可以在<code>reference</code>类中只包含<code>get</code>、<code>set</code>和<code>__init__</code>,然后添加稍后需要的重载函数:</p>
<pre><code>class reference:
def __init__(self, num): self.num = num
def get(self): return self.num
def set(self, num): self.num = num
a = reference(5)
reference.__mul__ = lambda self, num: self.num * num
print a * 4
</code></pre>
<p>以上打印<code>20</code></p>