gpt4 book ai didi

python - 根据类型过滤类的属性

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:32 25 4
gpt4 key购买 nike

我想根据类型过滤类对象的属性。

答案将围绕 inspect、“列表理解”、type()__dict__dict() 但我不让它工作。

class A():
def __init__(self, value):
self.x = value

def __str__(self):
return "value = {}\n".format(self.x)

class T():
def __init__(self):
self.a1 = A(1)
self.a2 = A(2)
self.b = 4

t = T()

我想只打印 T 类中 A 类型的属性

class T():
def __init__(self):
self.a1 = A(1)
self.a2 = A(2)
self.b = 4

def __str__(self):
ret = ""
for i in [*magic*]:
ret += str(i)
return ret

输出应该是这样的:

value = 10
value = 15

最佳答案

您可以使用 vars(self)获取本地属性的字典,然后只需使用 isinstance() 测试值:

def __str__(self):
ret = ""
for i in vars(self).values():
if isinstance(i, A):
ret += str(i)
return ret

vars() 本质上返回 self.__dict__ ,但更简洁。

将其转化为单行吸引力的列表理解:

def __str__(self):
return ''.join([i for i in vars(self).values() if isinstance(i, A)])

关于python - 根据类型过滤类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27177946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com