擅长:python、mysql、java
<p>在你的代码中:</p>
<pre><code>class User:
UserName
Password
</code></pre>
<p><code>UserName</code>和<code>Password</code>被解析为表达式。因为此时还没有分配它们,所以会得到一个<code>NameError</code>。</p>
<p>在Python中,必须使用赋值语句定义变量,然后才能在表达式中使用它,否则会得到NameError。注意,这里的“before”表示“execution order”,而不是“source code order”。还有更多的内容(import语句、globals、namespace hacks),但是让我们在这里保持简单。</p>
<p>定义变量“没有值”的惯用方法是给它赋值<code>None</code>。</p>
<p>另外,代码看起来确实需要实例成员,而不是类成员。一些静态分析工具(如<code>pylint</code>)认可的惯用方法是:</p>
<pre><code>class User(object):
def __init__(self):
self.username = None
self.password = None
</code></pre>
<p>另外,从“object”派生所有类也是一种很好的Python样式,因此您可以使用新样式的类,并使用小写字母_和_下划线或initialLowerWithCaps约定来命名实例变量。InitialCaps样式对类名是相当普遍的保留。</p>