小编典典

为什么我不能在Python中扩展布尔值?

python

>>> class BOOL(bool):
...     print "why?"
... 
why?
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Error when calling the metaclass bases
    type 'bool' is not an acceptable base type

我以为Python信任程序员。


阅读 166

收藏
2020-12-20

共1个答案

小编典典

圭多对此的看法:

我昨晚想到了这一点,意识到根本不应该允许您继承bool!子类仅在具有实例时才有用,但是仅存在bool子类的实例将打破不变的事实,即True和False是bool的唯一实例!(C的子类的实例也是C的实例。)我认为重要的是不要提供后门来创建其他bool实例,因此我认为bool不应是子类的。

参考:http
//mail.python.org/pipermail/python-
dev/2002-March/020822.html
2020-12-20