gpt4 book ai didi

python - 是否可以使用python的类型函数动态创建类级别变量?

转载 作者:行者123 更新时间:2023-12-01 04:14:06 25 4
gpt4 key购买 nike

给定类(class)

class A(object): 
def __init__(self):
self.x = 'hello'

可以使用类型动态地重新创建

type('A', (object,), {'x': 'hello'})

是否可以使用类型创建类级别变量?

class A(object): 
my_class_variable = 'hello'

最佳答案

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

关于python - 是否可以使用python的类型函数动态创建类级别变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34539830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com