擅长:python、mysql、java
<p><code>stats()</code>是您的类<code>User</code>的一个方法。这意味着<code>stats()</code>存在于<code>User</code>的{a1}内,但超出了范围,它没有被定义。在</p>
<p>还有另一个问题:您的<code>__init__</code>接受一个同名的参数(<code>stats</code>),然后将<code>stats</code>设置为<code>self</code>的属性。这意味着您可以使用传递给<code>__init__</code>调用的任何内容覆盖您的方法<code>stats()</code>(当您设置<code>self.stats = stats</code>时)。您应该将此属性重命名为<code>self._stats = stats</code>。在</p>
<p>而且在全局范围内,您从未<a href="https://docs.python.org/3/tutorial/classes.html#class-objects" rel="nofollow noreferrer">instantiated</a>您的类<code>User</code>。所以你可以这样做:</p>
<pre><code>user = User("Jeremy", "whatever your stats are")
story = "on"
while story == "on":
print ("Start of story")
user.stats()
</code></pre>
<p>这将解决错误。不过,我不确定代码是否能达到您期望的效果。在<code>stats()</code>中定义了很多变量,比如<code>strength</code>等等。也许你想把它们定义为<code>self</code>的属性,所以<code>self.strength = ...</code>。在</p>
<p>然后可以通过<code>user.strength</code>等在全局范围内访问它们</p>