擅长:python、mysql、java
<p>在你的<code>test1</code>中你有:</p>
<pre><code>class Player():
hp=0
def __init__(self):
self.hp=0
zim = Player()
zim.hp = 5
</code></pre>
<p>这将抛出一个<code>NameError: name 'Player' is not defined</code>,因为您正在创建一个<code>Player</code>的实例,而它的类定义还没有结束。我想你打算做:</p>
<pre><code>class Player():
hp=0
def __init__(self):
self.hp=0
zim = Player() # This and the next line are indented differently
zim.hp = 5
</code></pre>
<p>在这种情况下,<code>zim</code>成为<code>test1</code>的模块变量,因此<code>zim.hp</code>可以从<code>test2</code>打印</p>
<p>现在,将<code>test1</code>编辑为:</p>
<pre><code>def Test():
class Player():
hp=0
def __init__(self):
self.hp=0
zim = Player()
zim.hp = 5
</code></pre>
<p><code>Player</code>对象实例化在它的类声明之外,所以它是正确的。但是变量<code>zim</code>只存在于函数<code>Test()</code>中。从另一个模块打印<code>zim.hp</code>时,<code>zim</code>不作为要从<code>test2</code>访问的模块变量存在</p>
<p>可能您可以从<code>Test()</code>方法<code>return zim.hp</code>。如果这样做,就可以从<code>test2</code>访问值,作为<code>print(test1.Test())</code></p>
<p>希望这有帮助</p>