Помимо очевидного, я думал, что я хотел бы попробовать это, на всякий случай:Есть ли способ подкласса генератора в Python 3?
def somegen(input=None):
...
yield
...
gentype = type(somegen())
class subgen(gentype):
def best_function_ever():
...
Увы, ответ Пизон был весьма враждебно:
"TypeError: Type generator is not an acceptable base type"
Как назло, это проблема для меня. Видишь, я думал, что может быть будет быть забавным базовым типом для игры, если бы я дал ему шанс. Представьте мое удивление! .. и смятение. Разве нет способа заставить всемогущего Python увидеть что-то в этом роде?
Это, безусловно, вопрос о внешнем виде, поэтому, пожалуйста, не просто скажите, что это невозможно, если вы не можете сразу придумать способ. Python (особенно Py3) очень гибкий.
Конечно, если у вас есть доказательства того, почему он не может (не «не должен») быть базовым типом (PY3), то я сделать хочет увидеть и понять, что.
«Генератор» - это тип 'метода'. «Класс» может наследовать только от других «классов». Это было бы аналогично строительству автомобиля из вождения. Я могу понять разочарование, потому что я считаю, что python должен иметь возможность делать что угодно и все, но я понимаю, почему они не нашли времени для его реализации. –
@FarmerJoe Я не уверен, что получаю аналогию, но «метод» по существу (может быть, даже на самом деле) является подтипом 'function'. Кроме того, все это тип, даже сам тип;) – Inversus
@FarmerJoe Что я имею в виду, так это то, что под обложками все «класс», даже «генератор». Где-то глубоко внутри себя, несомненно, найдется некоторый C-эквивалент «генератора (функции) класса», и это тот класс, который я ищу для «подкласса» (то есть: я совершенно счастлив делать что-то другое, что позволяет мне подобную гибкость) , – Inversus