相关疑难解决方法(0)

Python 3.x中的最后一课 - Guido没有告诉我什么?

这个问题建立在许多假设之上.如果一个假设是错误的,那么整个事情就会失败.我还是相对较新的Python,刚刚进入了好奇/探索阶段.

我的理解是Python不支持创建不能被子类化的类(最终类).但是,在我看来,Python 中的bool类不能被子类化.当考虑bool类的意图时,这是有道理的(因为bool只应该有两个值:true和false),我很满意.我想知道的是这个课程是如何被标记为最终的.

所以我的问题是: Guido如何设法阻止bool的子类化?

>>> class TestClass(bool):
        pass

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    class TestClass(bool):
TypeError: type 'bool' is not an acceptable base type
Run Code Online (Sandbox Code Playgroud)

相关问题: 为什么我不能在Python中扩展bool?

python inheritance

31
推荐指数
4
解决办法
2249
查看次数

为什么xrange在Python中不可继承?

我试图继承xrange(使用in以及迭代来实现成员资格测试)。但我收到以下错误消息:

TypeError: Error when calling the metaclass bases
    type 'xrange' is not an acceptable base type
Run Code Online (Sandbox Code Playgroud)

有什么特别之处xrange?

python inheritance xrange typeerror

6
推荐指数
1
解决办法
294
查看次数

pep8轻微的烦恼

在/tmp/spam.py:

n = 69

if n == True:
    print 'potato'
Run Code Online (Sandbox Code Playgroud)

pep8实用程序抱怨这个条件:

wim@SDFA100461C:/tmp$ pep8 spam.py 
spam.py:3:6: E712 comparison to True should be 'if cond is True:' or 'if cond:'
Run Code Online (Sandbox Code Playgroud)
  • 根据pep8本身,第一个建议是错误/"更糟"
  • 第二个建议改变了代码的行为

对于您确实想要检查相等性的情况,最佳做法是什么True?True使用isOK进行身份检查吗?为什么pep8实用程序提供了一种在pep8本身明确不鼓励的替代方案?

python boolean pep8

5
推荐指数
1
解决办法
1154
查看次数

标签 统计

python ×3

inheritance ×2

boolean ×1

pep8 ×1

typeerror ×1

xrange ×1