擅长:python、mysql、java
<p>问题是在定义<code>system</code>时,在构造函数中将<code>Component1</code>作为<code>line</code>参数传递。因为python做了他能做的所有操作,如果操作合法的话,就不检查参数类型,所以这就通过了。你知道吗</p>
<p>也许在系统构造函数中检查给定的参数<code>lines</code>是否真的是list类型是个好主意,也许可以编写如下内容:</p>
<pre><code> if lines is None or not isinstance(lines, list):
self.lines = []
else:
self.lines = lines
</code></pre>
<p>这样,您就可以在尝试附加到非列表对象之前知道问题。你知道吗</p>
<p>至于你问题的第二部分,你可以完全按照你的建议去做:</p>
<pre><code>system1 = system([Component1, Component2, MyComponent], [])
</code></pre>
<p>(例如,如果您想创建一个包含3个组件的系统,并将空列表作为行的“控制台”)</p>