是否可以使用 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 函数,但这只返回值。
答案 0 :(得分:-1)
要从类中提取所有属性和方法,您通常使用内置的 dir() 函数。然后,您可以根据您的特定用例将其过滤到某些标准。例如:
class A:
x = 7
attrs = [attr for attr in dir(A) if not attr.startswith('__')] #Filtering out hidden.