У меня есть классдекоратора, который создает классы
class Test:
name = "Test"
Я хочу создать декоратор mc_me, который после того, как:
@mc_me
class Test:
name = "Test"
предоставит мне три класса так же, как если бы я написал:
class Test:
name = "Test"
class TestSuper:
name = "TestSuper"
class TestExtra:
name = "TestExtra"
Таким образом, по сути, первая сложная часть - это глубокое копирование класса, а второе назначение трех переменных в области вызова. Кажется, что это должно быть возможно ...
Больной и красивый! :) С примечанием: «Подробности реализации CPython: эта функция опирается на поддержку фрейма стека Python в интерпретаторе, который не гарантированно существует во всех реализациях Python». [inspect.currentframe] (http://docs.python.org/2/library/inspect.html#inspect.currentframe) – neverlastn
Работает только на уровне верхнего уровня или на уровне класса, и я уверен, что вы должны были return 'cls'. – user2357112
Забыл 'return cls', вы правы. Я не вижу проблемы с ограничениями верхнего уровня. – gioi