Python 获取类属性引用的列表

Python 获取类属性引用的列表,python,pointers,python-decorators,Python,Pointers,Python Decorators,是否可以使用python对象获取对象引用列表? 我正在尝试获取对象属性引用的列表,以便执行类似于以下示例的操作: class Test: def __init__(self): self._foo = 1 self._bar = 2 @property def foo(self): return self._foo @foo.setter def foo_setter(self, foo): self._foo = foo @property def bar

是否可以使用python对象获取对象引用列表? 我正在尝试获取对象属性引用的列表,以便执行类似于以下示例的操作:

class Test:
def __init__(self):
    self._foo = 1
    self._bar = 2

@property
def foo(self):
    return self._foo

@foo.setter
def foo_setter(self, foo):
    self._foo = foo

@property
def bar(self):
    return self._bar

@bar.setter
def bar_setter(self, bar):
    self._bar = bar

def att_list(self):
    return [
        self.bar_setter,
        self.foo_setter
    ]

def __repr__(self) -> str:
    return f'foo: {self._foo}, bar: {self._bar}'

test = Test()
att_list = test.att_list()
print(test)
for att in att_list:
    if att > 1:
        att += 1

print(test)
理想情况下,该测试将打印出:

foo: 1, bar: 2
foo: 1, bar: 3

正如您所看到的,我希望获得一个对象属性引用列表(在本例中为foo和bar),以便不仅能够读取它们,而且能够写入它们,到目前为止,我已尝试传递属性的setter函数,但这只返回值。

要从类中提取所有属性和方法,通常使用内置的dir()函数。然后,您可以根据特定的用例将其过滤到某些标准。例如:

class A:
    x = 7

attrs = [attr for attr in dir(A) if not attr.startswith('__')] #Filtering out hidden.