擅长:python、mysql、java
<p>没有简单的方法来处理属性。不能简单地对受属性保护的项设置属性或从中获取属性。你知道吗</p>
<pre><code>def declarativeInfo(*args, **kwargs):
def wrapper(obj):
for arg in args:
setattr(obj, arg, arg)
for k, v in kwargs:
setattr(obj, k, v)
return obj
return wrapper
class MyTestClass:
def __init__(self, foo):
print MyTestClass.__dict__
self.radius = self.Radius('foo')
@declarativeInfo(bar="ABC",baz=123)
class Radius(object):
def __init__(self, foo):
self.value = foo
a = MyTestClass('foo')
print a.radius.value
print a.radius.a
</code></pre>
<p>是最简单的方法。当然,您可以始终将<code>value</code>设为属性。你知道吗</p>
<p>如果您真的想<code>radius</code>成为一个普通属性,您可以将信息存储在dict的其他地方,并从<code>self.propdict</code>或其他地方检索它。你知道吗</p>