擅长:python、mysql、java
<p>本例中的<code>+</code>运算符不起作用,因为<code>DynamicProperty</code>不从<code>float</code>继承。见:</p>
<pre><code>>>> class Foo(float):
pass
>>> Foo(1.5) + 2
3.5
</code></pre>
<p>因此,您需要进行某种动态继承:</p>
<pre><code>def get_dynamic_property(instance):
base = type(instance)
class DynamicProperty(base):
pass
return DynamicProperty(instance)
wrapped_string = get_dynamic_property("foo")
print(wrapped_string.upper())
wrapped_float = get_dynamic_property(1.5)
print(wrapped_float + 2)
</code></pre>
<p>输出:</p>
<pre><code>FOO
3.5
</code></pre>