擅长:python、mysql、java
<p>您可以从<code>int</code>子类化您自己的数据类型,并为其提供<a href="http://www.rafekettler.com/magicmethods.html" rel="nofollow">a bunch of magic methods</a>重载所需的运算符。在</p>
<pre><code>class Alwayspositive(int):
def __init__(self, *args, **kwargs):
super(Alwayspositive, self).__init__(*args, **kwargs)
def __neg__(self):
raise AlwayspositiveError()
def __sub__(self, other):
result = super(Alwayspositive, self).__sub__(other)
if result < 0:
raise AlwayspositiveError()
return result
</code></pre>
<p>等等。要使这样的类安全,需要做大量的工作和调试,但它允许您调试代码,只需在调试模式和发布模式之间稍作更改。在</p>