作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
除了显而易见的,我想我会试试这个,以防万一:
def somegen(input=None):
...
yield
...
gentype = type(somegen())
class subgen(gentype):
def best_function_ever():
...
唉,Python 的 react 相当敌对:
"TypeError: Type generator is not an acceptable base type"
幸运的是,这对我来说是个问题。看,我在想,如果我给它一个机会,它会是一个有趣的基础类型。想象一下我的惊喜! ..和沮丧。有没有办法让全能的 Python 以我的方式看待这件事?
这肯定是一个开箱即用的问题,所以如果您不能立即想到办法,请不要只说不可能。 Python(尤其是 Py3)非常灵活。
当然,如果您有证据证明它不能(不是“不应该”)是基类型 (Py3),那么我确实想看看并且明白这一点。
最佳答案
一个相关的其他问题是 Which classes cannot be subclassed? .
这是那里接受的答案中的原因 2——类型的子类化需要在 C 中实现,并且它没有为生成器实现,可能是因为没有人看到用例。
生成器对象的源代码是genobject.c ,您可以在第 349 行看到未设置 Py_TPFLAGS_BASETYPE 标志。
关于python - 有没有办法在 Python 3 中子类化生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26738200/
我是一名优秀的程序员,十分优秀!