除此之外,我想我会尝试这一点,以防万一:有没有办法在Python 3中创建一个生成器的子类?
def somegen(input=None):
...
yield
...
gentype = type(somegen())
class subgen(gentype):
def best_function_ever():
...
唉,Python的反应是相当恶劣的:
"TypeError: Type generator is not an acceptable base type"
幸运的是,这是一个问题为了我。看,我在想,也许它将是一个有趣的基础类型玩,如果我给了它一个机会。想象我的惊喜!令人沮丧。有没有办法让全能的Python在这一个上看到我的方式?
这绝对是一个盒子外的有点问题,所以请不要说如果不能立即想办法就不可能。 Python(特别是Py3)非常灵活。
当然,如果你有它为什么不能(不是“不应该”)是一个基本类型(PY 3),然后我做想看到和理解的证据。
'generator'是'method'的一种。 'class'只能从其他'class'继承。这将类似于开车开车。我可以理解这种沮丧,因为我认为python应该能够做任何事情,但我明白为什么他们不会花时间去实现它。 – 2014-11-04 15:52:50
@FarmerJoe我不确定我是否能够得到类比,但'方法'本质上(甚至实际上)是'function'的一个子类型。此外,一切都是一种类型,甚至自己类型;) – Inversus 2014-11-06 22:45:01
@FarmerJoe我的意思是,在封面下,一切都是'class',甚至'generator'。在内部深处,人们肯定会发现一些C类的“类生成器(函数)”,它就是我期待的“子类”类(即:我非常高兴做其他事情,使我具有类似的灵活性) 。 – Inversus 2014-11-06 22:58:25