我有一节课
class Test:
name = "Test"
我想创建一个decorator mc\u me,之后:
@mc_me
class Test:
name = "Test"
将为我提供三门课程,就像我写的那样:
class Test:
name = "Test"
class TestSuper:
name = "TestSuper"
class TestExtra:
name = "TestExtra"
所以本质上第一个棘手的部分是深度复制一个类,第二个是在调用者的作用域上分配三个变量。感觉应该有可能。。。你知道吗
小心,这不是编码的最佳方式。权力大,责任大。我鼓励您检查一下
inspect
方法的所有可能的缺点(Google是您的朋友)。你知道吗事实证明,放弃decorator的思想,使用一个返回元组的正则函数,最接近我想要的结果。你知道吗
不可能。上三节课很容易。把结果分配给3个变量?这违反了Python的范围规则。你知道吗
相当于
对于decorator来说,没有办法说它想创建更多的变量并分配给这些变量。即使您设法使它工作(可能只在具有
inspect
疯狂性的模块或类范围内),Python也无法知道对TestSuper
或TestExtra
的引用应该引用在编译字节码时由装饰器创建的变量。你知道吗相关问题 更多 >
编程相关推荐