回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我需要一些关于如何正确设置我要做的事情的指导。
我有一个名为Attribute Block的类,然后用它创建3或4个属性块对象。如下图所示。。。你知道吗</p>
<pre><code>class AttributeBlock():
def __init__(self, key, label, isClosed, isRequired, attributes):
self.key = key
self.label = label
self.isClosed = isClosed
self.isRequired = isRequired
self.attributes = attributes if attributes is not None else {}
</code></pre>
<p>3个attributeBlock对象</p>
<pre><code>AttributeBlock(
key="Sphere",
isRequired=True,
attributes=[
''' Other class objects '''
BoolProperty("ishidden", False, "Hidden"),
]
)
AttributeBlock(
key="Box",
isRequired=True,
attributes=[
''' Other class objects '''
BoolProperty("ishidden", True, "Hidden"),
]
)
AttributeBlock(
key="Circle",
isRequired=False,
attributes=[
''' Other class objects '''
BoolProperty("ishidden", True, "Hidden"),
]
)
</code></pre>
<p>然后我想做的是能够将这些AttributeBlock中的一个添加到一个对象中,确保在添加时,它是AttributeBlock的一个新实例,因此它的子属性对象是新实例。你知道吗</p>
<p>这是我将属性块添加到的对象。你知道吗</p>
<pre><code>class ToyBox():
def __init__(self, name="", attributes=[]):
self.name = name
self.attributes = attributes[:]
newToyBox = ToyBox()
newToyBox.name = "Jimmy"
</code></pre>
<p><strong>伪码</p>
<pre><code>def add_attribute_block(toybox = None, key = "" ):
if an AttributeBlock with the matching key exists:
add it to toybox.attributes
add_attribute_block( newToyBox, "Box" )
print newToyBox
>>
ToyBox
name="Jimmy"
attributes=[
AttributeBlock(
key="Box",
isRequired=True,
attributes=[
BoolProperty("ishidden", True, "Hidden"),
]
),
AttributeBlock(
key="Sphere",
isRequired=True,
attributes=[
BoolProperty("ishidden", True, "Hidden"),
]
)
]
</code></pre>