如何查看类的实例变量

2024-10-02 16:22:49 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的init函数中有一个默认设置列表。这些默认值都是实例变量。例如

self.set_acqmode = 1
self.set_readmode = 4
self.set_triggermode = 0

我在这个类中有一个函数,我想用它来更改这些默认设置,只需传入一个名称和一个值作为参数。例如

^{pr2}$

访问和更改正确实例变量的python方法是什么。前一个类的的类都需要引用的类。在

(如果有更好的方法不用搜索变量,我还是想知道如何查看它们,只是出于兴趣)


Tags: 实例方法函数self名称列表参数init
3条回答

您当然可以使用__dict__

>>> class Test(object):
    def __init__(self):
        self.x = 1
    def set(self, attr, val):
        self.__dict__[attr] = val

>>> a = Test()
>>> a.set('x', 2)
>>> a.x
2

setattr将起作用。但是你必须要问,如果你为了重写setattr而费尽周折,你的方法是否正确?在

如果你只想有一些任意的键和值-好吧,这是一个字典,你应该这样使用它。如果需要自定义行为,请重写__getitem__/__setitem__。在

如果您真的需要属性,那么父函数没有理由不这么做

myobj.set_triggermode = value

而不是过于复杂

^{pr2}$

所以你应该这么做。即使您出于某种原因想这样做-使用kwargs而不是args,可能更接近您想要的。在

使用^{}

def change_setting(self, setting, *arg):
    setattr(self, setting, arg)

相关问题 更多 >