擅长:python、mysql、java
<p>这是不可能的。一个对变量的简单引用(例如<code>pwd</code>)不会做任何特殊的事情,它只是检索存储在该变量中的引用。如果该变量绑定到函数,则此引用是对函数的引用,但无论哪种方式,它都只是引用,仅此而已。要真正调用任何东西,必须使用函数调用的语法-<code>expression '(' arglist ')'</code>。</p>
<p>现在,这不适用于对象的属性(即任何对象的属性),因为从技术上讲,获取成员已经是一个函数调用,并且可以被重写。实际上,有很多方法可以影响<code>obj.member</code>的计算结果,最重要的方法是在描述符中<code>__getattr__</code>、<code>__getattribute__</code>和<code>__get__</code>。对于后两种情况,有相当于设置属性(是的,这是一个不同的操作)。所有这些都记录在<a href="http://docs.python.org/py3k/reference/datamodel.html" rel="nofollow">language reference</a>中。</p>
<p>使用这个来隐式调用过程(与getter相反)仍然是一个非常糟糕的主意,因为这是违反直觉的,会使代码不那么明显,除了保存两个paren之外,绝对没有任何好处。它也不允许获得对函数的引用,这使得函数式和函数式的编程非常不方便(您可以使用<code>lambda: obj.pwd</code>,但这更不明显和丑陋)。</p>