擅长:python、mysql、java
<p>不,你说得不对。要使某个对象成为类方法而不是实例方法,必须使用<code>classmethod</code>修饰符。这个方法仍然接受一个参数,但是这个param是类,而不是实例。所以:</p>
<pre><code>@classmethod
def get_employee_count(cls):
return cls.employeeCount
</code></pre>
<p>在Python中,类实际上并没有在它们内部定义块范围,所以在方法中仅仅引用<code>employeeCount</code>是行不通的——这就是为什么使用<code>cls</code>参数的原因。在</p>
<p>为了澄清,decorator只是一个函数的包装器-它也可以被编写</p>
^{pr2}$
<p>并且<code>classmethod</code>是一个内置函数。在</p>
<p>另外请注意,在Python中(正如我在Ruby中所想的那样),我们通常不会为简单变量(如<code>name</code>)编写访问器,而只是直接访问它们。在</p>