如何在 python 中向 class 添加属性
How to add attribute to class in python
我有:
class A:
a=1
b=2
我想制作成
setattr(A,'c')
然后我从 class A
创建的所有对象都具有 c
属性。
我不想使用继承
只需将这一行添加到您的代码中:
A.c = 3
然后如果你这样做:
print(A.c)
它将输出:
3
你可以静态或 class 变量。
您可以在代码中执行 A.c。
当我们在 class 中但在任何方法之外声明一个变量时,它被称为 class 或 python 中的静态变量。 Class 或静态变量可以通过 class 引用,但不能直接通过实例引用。
有两种方法可以为您的 class;
设置属性
首先,通过使用setattr(class, variable, value)
代码语法
setattr(A,'c', 'c')
print(dir(A))
输出
你可以看到属性class A的结构
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__', '__gt__', '__hash__',
'__init__', '__init_subclass__', '__le__', '__lt__', '__module__',
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'__weakref__', 'a', 'b', 'c']
[Program finished]
其次,你可以简单地通过分配变量来做到这一点
代码语法
A.d = 'd'
print(dir(A))
输出
你可以看到属性class A的结构
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__', '__gt__', '__hash__',
'__init__', '__init_subclass__', '__le__', '__lt__', '__module__',
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'__weakref__', 'a', 'b', 'c', 'd']
[Program finished]
我有:
class A:
a=1
b=2
我想制作成
setattr(A,'c')
然后我从 class A
创建的所有对象都具有 c
属性。
我不想使用继承
只需将这一行添加到您的代码中:
A.c = 3
然后如果你这样做:
print(A.c)
它将输出:
3
你可以静态或 class 变量。
您可以在代码中执行 A.c。
当我们在 class 中但在任何方法之外声明一个变量时,它被称为 class 或 python 中的静态变量。 Class 或静态变量可以通过 class 引用,但不能直接通过实例引用。
有两种方法可以为您的 class;
设置属性首先,通过使用setattr(class, variable, value)
代码语法
setattr(A,'c', 'c')
print(dir(A))
输出
你可以看到属性class A的结构
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__', '__gt__', '__hash__',
'__init__', '__init_subclass__', '__le__', '__lt__', '__module__',
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'__weakref__', 'a', 'b', 'c']
[Program finished]
其次,你可以简单地通过分配变量来做到这一点
代码语法
A.d = 'd'
print(dir(A))
输出
你可以看到属性class A的结构
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__', '__gt__', '__hash__',
'__init__', '__init_subclass__', '__le__', '__lt__', '__module__',
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'__weakref__', 'a', 'b', 'c', 'd']
[Program finished]