擅长:python、mysql、java
<p>您可以尝试使用<a href="http://docs.python.org/reference/datamodel.html#implementing-descriptors" rel="nofollow noreferrer">descriptor</a>:</p>
<pre><code>class BooleanDescriptor(object):
def __init__(self, attr):
self.attr = attr
def __get__(self, instance, owner):
return getattr(instance, self.attr)
def __set__(self, instance, value):
if value in (True, False):
return setattr(instance, self.attr, value)
else:
raise TypeError
class Foo(object):
_bar = False
bar = BooleanDescriptor('_bar')
</code></pre>
<h3>编辑:</h3>
<p>正如S.Lott提到的,python更喜欢<a href="http://en.wikipedia.org/wiki/Duck_typing" rel="nofollow noreferrer">Duck Typing</a>而不是类型检查。在</p>