A parte l'ovvio, ho pensato di provare questo, nel caso in cui:C'è un modo per creare una sottoclasse di un generatore in Python 3?
def somegen(input=None):
...
yield
...
gentype = type(somegen())
class subgen(gentype):
def best_function_ever():
...
Ahimè, la risposta di Python era abbastanza ostile:
"TypeError: Type generator is not an acceptable base type"
Per fortuna ha voluto che, questo è un problema per me. Vedi, stavo pensando che forse sarebbe essere un tipo di base divertente con cui giocare, se avessi dato una possibilità. Immagina la mia sorpresa! ..e sgomento. Non c'è modo di convincere l'onnipotente Python a vedere le cose a modo mio su questo?
Questa è sicuramente una domanda tipo "fuori dalla scatola", quindi per favore non dire che non è possibile se non si riesce a pensare a un modo immediatamente. Python (specialmente Py3) è molto flessibile.
Naturalmente, se avete la prova del motivo per cui non può (non "non dovrebbe") essere un tipo di base (PY3), poi ho fare vogliono vedere e capire che.
Un 'generatore' è un tipo di' metodo'. Una 'classe' può ereditare solo da altre' classi'. Sarebbe analogo costruire un'automobile senza guida. Posso capire la frustrazione perché sono dell'opinione che python dovrebbe essere in grado di fare qualsiasi cosa e tutto, ma capisco perché non si prenderanno il tempo per implementarlo. –
@FarmerJoe Non sono sicuro di ottenere l'analogia, ma un 'metodo' è essenzialmente (forse anche in realtà) un sottotipo di' funzione'. Inoltre, tutto è un tipo, anche il tipo stesso) – Inversus
@FarmerJoe Ciò che intendo è che, sotto le copertine, tutto è un 'class', anche' generatore'. Da qualche parte nelle profondità interne, si troverà sicuramente qualche equivalente C di 'generatore di classi (funzione)' ed è quella classe che sto cercando di "sottoclasse" (cioè: sono perfettamente felice di fare qualcos'altro che mi consenta una simile flessibilità) . – Inversus