这个问题是建立在许多假设之上的。如果一个假设是错误的,那么整个事情就倒塌了。我对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
您可以很容易地从Python 3.x模拟相同的效果:
class Final(type):
def __new__(cls, name, bases, classdict):
for b in bases:
if isinstance(b, Final):
raise TypeError("type '{0}' is not an acceptable base type".format(b.__name__))
return type.__new__(cls, name, bases, dict(classdict))
class C(metaclass=Final): pass
class D(C): pass
将给出以下输出:
Traceback (most recent call last):
File "C:\Temp\final.py", line 10, in <module>
class D(C): pass
File "C:\Temp\final.py", line 5, in __new__
raise TypeError("type '{0}' is not an acceptable base type".format(b.__name__))
TypeError: type 'C' is not an acceptable base type
问题内容: 我的问题很简单: 编译器是否将final类中的所有方法都视为final本身?将关键字添加到最终类中的方法是否有效果? 我知道最终方法更有可能被内联,这就是我要问的原因。 提前致谢。 问题答案: 没错,final类中的所有方法都隐式为final。 看这里: “请注意,您也可以将整个类声明为final。声明为final的类不能被子类化。例如,在创建不可变类(如String类)时,这特别有用
python指标代码pymetrics可用于分析代码文件的复杂性。它们创建了两个不同的指标: 整个文件的COCOMO 2的SLOC度量 我想知道这些指标的数值意味着什么,而不是它们的定义。值“1”是什么意思?一个数字‘5’?一个“10”的数字?越高越好还是越低越好?什么数值指的是好代码,什么指的是真正的坏代码?上网搜了一下,给了一些提示,但我不确定分类指的是公制(1)还是公制(2)。我想让这两个数
以下项目是从一个在线课程中逐字复制的。它应该显示一个ListView,但什么也不显示。我是一个全新的Android工作室,这只是我在里面的第二个项目。这里有5个文件,我将在下面显示每个文件的内容。我只需要另一双或两双眼睛来发现问题,因为我是“虫子盲”。任何帮助都将不胜感激。 activity_main.xml OurAdapter.java 包com.example.tadhg.uiuxAdapt
问题内容: 我的一个朋友在几天的电话面试中被问到这个问题。我没有头绪 有人可以提出解决方案吗?(他的工作面试已经结束。现在只是出于好奇)10倍。 问题答案: 将构造函数标记为私有 在类上提供静态方法以创建类的实例。这将允许您实例化该类的对象
问题内容: 函数定义中的下划线是什么意思? 例如 我了解在定义函数时,我可以执行以下操作: 然后,我将其称为而不是,即故意隐藏参数名称吗? 问题答案: Swift需要一个约定来说明函数名称是什么,不仅包括函数名称本身(在括号之前),还包括参数的外部名称。约定是名称后跟冒号。因此,这是一个函数声明(在Swift 2.0中): 这是该函数的名称: 但是,在现实生活中,一个或多个参数有可能(实际上)不会
问题内容: 这实际上是我现在面临的问题。我有一个类,可以说该类定义了一个返回实例的方法。该类在内部定义并声明。我想要做的就是定义一个类扩展,但我也想对与加入我自己的功能(方法,属性等)。我也想回来。 问题是最终的。这是我想做的事的例证: 我想做的是: 我该如何实现? [编辑]我正在向我的问题添加更多详细信息。我实际上是在为Jenkins开发一个插件,经过搜索,我意识到有一个插件提供了我想做的基本功