擅长:python、mysql、java
<p>在处理对象的属性时,作用域不起作用。考虑以下几点:</p>
<pre><code>class A(object):
def __init__(self):
self.a = 1
def foo():
a = A()
a.a = 2
return a
def bar(a):
print(a.a)
bar(foo())
</code></pre>
<p>此示例代码将打印2。注意,在<code>bar</code>范围内,<em>没有办法访问<code>foo</code>范围,甚至<code>A.__init__</code>。类<em>实例</em>携带着它的所有属性(以及对它的类的引用,该类引用引用了<em>它的</em>超类,等等)。你知道吗</p>
<p>在您的代码中,当您调用<code>VoltageResistor</code>时,<code>VoltageResistor</code>的实例被创建并作为<code>self</code>传递给<code>__init__</code>。调用<code>super.__init__(self)</code>时,<code>VoltageResistor</code>实例被传递给<code>Resistor.__init__</code>。当它执行<code>self.ohms = ohms</code>操作时,python会看到<code>self.ohms</code>解析为一个属性,您就会得到错误。太长了,读不下去了,这里是^ {CD7}}是^ {< CD4}}和<强>的实例,当使用属性时,访问属性的对象是重要的,而不是当前的范围< /强>。你知道吗</p>