鉴于课程
&
可以使用class A(object):
def __init__(self):
self.x = 'hello'
动态重新创建。
type
是否可以使用类型创建类级变量?
type('A', (object,), {'x': 'hello'})
答案 0 :(得分:2)
In [154]: A = type('A', (object,), {'my_class_variable':'hello'})
In [155]: A.my_class_variable
Out[157]: 'hello'
在您的第一个示例中,type('A', (object,), {'x': 'hello'})
,A.x
是一个类属性,也不是实例属性。
要使用您发布的__init__
制作课程,首先需要定义__init__
函数,然后将__init__
作为类属性:
In [159]: def __init__(self):
.....: self.x = 'hello'
.....:
In [160]: A2= type('A', (object,), {'__init__':__init__})
In [161]: 'x' in dir(A2)
Out[161]: False # x is not a class attribute
In [162]: 'x' in dir(A2())
Out[162]: True # x is an instance attribute