擅长:python、mysql、java
<p>两件重要的事。在</p>
<p>首先,“类级别”属性由类的所有实例共享。就像Java中的<code>static</code>。你的问题不清楚你是否真的在谈论类级别的属性。在</p>
<p>一般来说,大多数OO编程都是用实例变量完成的,就像这样。在</p>
<pre><code>class Foo(object):
def __init__():
self._bool1 = True
self._bool2 = False
self._bool3 = True
#et cetera
</code></pre>
<p>第二点。我们不会浪费很多时间来验证参数的类型。在</p>
<p>如果一个神秘的“某人”提供了错误的数据类型,我们的类就会崩溃,这几乎是最好的结果。在</p>
<p>为了让类在不同的地方崩溃,在类型和域验证上大惊小怪是一件很费事的事。最终,异常(<code>TypeError</code>)是相同的,因此额外的检查结果没有什么实际价值。在</p>
<p>实际上,当有人创建<code>bool</code>的替代实现,并且您的类拒绝这个完全有效的类,该类具有与内置的<code>bool</code>相同的功能时,额外的域检查可能(而且经常会)适得其反。在</p>
<p>不要将人工输入范围检查与Python类型检查混为一谈。人工输入(或从文件或URI中读取的内容)必须<em>range</em>选中,但不能进行类型检查。执行外部数据读取的应用程序部分定义了类型。不需要检查类型。不会有什么神秘的。在</p>
<p>“如果我使用了错误的类型,而我的程序似乎可以工作,但没有用呢”的场景实际上没有任何意义。首先,找出两种行为完全相同但结果略有不同的类型。唯一的例子是<code>int</code>与<code>float</code>,唯一真正重要的是除法,这由两个除法运算符处理。在</p>
<p>如果你“不小心”使用了一个需要数字的字符串,你的程序就会死掉。可靠。一贯地。在</p>