除此之外,我想我會嘗試這一點,以防萬一:有沒有辦法在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