gpt4 book ai didi

python - 有没有办法在 Python 3 中子类化生成器?

转载 作者:太空狗 更新时间:2023-10-30 00:10:41 25 4
gpt4 key购买 nike

除了显而易见的,我想我会试试这个,以防万一:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com