【发布时间】:2020-08-11 02:15:57
【问题描述】:
我想要一个允许生成具有自定义类属性的类的函数。像这样:
def test_factory(a):
class Test:
a = a
return Test
但是,当我尝试调用 test_factory 时,我收到错误消息:
test_factory(1)
> NameError: name 'a' is not defined
预期的行为是:
t1 = test_factory(1)
t2 = test_factory(2)
print(t1.a, t2.a)
> 1, 2
如何通过调用函数来创建类属性不同的类?
【问题讨论】:
-
好像你来自JS。更 Pythonic 的方式是使用字典
-
我找到了这个link。可能值得一读
-
请注意,如果
Test是一个函数而不是一个类,您会收到类似的错误。 Python 中的 Name resolution rules 导致每个赋值都暗示该变量是该块的本地变量。 -
@MaxxikCZ 谢谢 - 这个链接确实值得一读。
标签: python python-3.x