擅长:python、mysql、java
<p>如果<code>SOME_CONSTANT</code>是在<code>type(sysprops)</code>上定义的属性,<code>sysprops.SOME_CONSTANT</code>可以是函数的返回值。在</p>
<p>换句话说,如果<code>sysprops</code>是一个实例而不是一个类,那么您所说的通常是这样做的。在</p>
<p>但是这里的kicker<em>类是元类的实例。因此,关于通过使用类控制实例行为的所有知识同样适用于通过使用元类来控制类的行为。在</p>
<p>通常元类是<code>type</code>,但是您可以通过子类化<code>type</code>来定义其他元类。如果在元类中放置一个属性<code>SOME_CONSTANT</code>,那么当Python计算<code>sysprops.SOME_CONSTANT</code>时,该元类的实例,例如<code>sysprops</code>将具有所需的行为。在</p>
<hr/>
<pre><code>class MetaSysProps(type):
@property
def SOME_CONSTANT(cls):
return 'SOME_VALUE'
class SysProps(object):
__metaclass__ = MetaSysProps
print(SysProps.SOME_CONSTANT)
</code></pre>
<p>收益率</p>
^{pr2}$