什么是在Python中重置类属性的最佳方法.
我有一个类,它有大约20个类属性,在我的init中
class MyClass:
def __init__(self)
self.time=0
self.pos=0
self.vel=0
self.acc=0
self.rot=0
self.dyn=0
这些需要在我的程序的每次迭代中重置,这是最好的方法,而不是如上所示设置为零
谢谢
解决方法:
您可以使用vars()返回可以编辑的值字典.
类似的东西
class A:
def __init__(self):
self.a=1
self.b=1
def reset(self):
dic = vars(self)
for i in dic.keys():
dic[i] = 0
inst = A()
print inst.a , inst.b # will print 1 1
inst.reset()
print inst.a , inst.b # will print 0 0
如果你不想编辑其他一些属性,你可以做类似的事情
def reset(self):
dic = vars(self)
noEdit = ['a']
for i in dic.keys():
if i not in noEdit:
dic[i] = 0
这不会编辑变量a,虽然我认为我们已经走了很远,我们可能会在这里打破oop原则:)
标签:python,attributes,class
来源: https://codeday.me/bug/20190722/1498552.html