<p>“我想生成这个类的子类,这些子类的方法可以将项添加到初始化的列表中,…”</p>
<p>你是说希望子类继承<em>实例属性</em><code>_initiallist</code>,并提供对其进行操作的方法?如果是这样的话,那么子类的<em>实例</em>将每个都有一个<code>_initiallist</code>属性<em>,但是对于类的每个实例,{<cd1>}将是一个不同的列表。在</p>
<p>在这种情况下,解决方案如<strong>张阳玉</strong>所述。在</p>
<hr/>
<p>“我希望能够将我的初始列表提供给几个类,以便他们都能按照上面所示的方式执行。”</p>
<p>根据标题,我可以将其解释为:我希望超类的某个<em>实例</em>的<code>_initiallist</code>属性可用于两个子类的<em>实例</em>,这样它们就可以对同一个列表执行操作。在</p>
<p>如果<code>_initiallist</code>是一个类属性,那么可以这样做,或者在实例化子类时,可以将超类的实例作为<code>__init__</code>参数传递,据我目前所知。在</p>
<p>另外,这意味着示例中的两个类不具有<strong>是</strong>关系,而是您的超类实际上是一个sharedobject(AFAIK)。在</p>
<p>如果将其作为类属性,则会失去一些灵活性,因为超类的不同实例都会有一个指向相同列表的属性<code>_initiallist</code>。如果你把它作为一个实例属性,把超类的一个实例作为一个参数(作为一个共享对象)传递给子类,那么你仍然可以实现你想做的事情,并且仍然可以灵活地创建共享对象的多个实例。在</p>
<pre><code>class SharedObject(object):
def __init__(self, number):
self._inputnumber = number
self._initiallist = []
class Client(object):
def __init__(self, obj, current_line, new_line):
self._sharedobj = obj
self._thisline = current_line
self._gohere = new_line
def execute(self):
self._sharedobj._initiallist.append(self._thisline + 1)
</code></pre>