gpt4 book ai didi

python - 将每个实例属性的 __str__ 用于类的 __str__

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

在 Python 3 中有没有一种方法可以以编程方式递归调用私有(private)成员变量唯一的 __str__ 函数?像这样的东西:

class A:
def __str__(self):
return "A"

class B:
def __str__(self):
return "B"

class C:
def __init__(self):
self._A = A()
self._B = B()

def __str__(self):
for var in vars(self):
return str(var)

调用个人私有(private)成员时,它工作正常。但是,想要一种动态执行此操作的方法。

非常感谢。

最佳答案

vars函数返回一个字典,其中键是变量名(作为字符串),值是变量的值。因此迭代这些值应该可行。

class A:
def __str__(self):
return "A"

class B:
def __str__(self):
return "B"

class C:
def __init__(self):
self._A = A()
self._B = B()

def __str__(self):
output = ""
for _,var in vars(self).items(): #Iterate over the values
output += str(var) #Use the str() function here to make the object return its string form
return output #Need to return instead of print since that is what the __str__() function should do

如果需要,您可以在值之间添加某种分隔符(如 \n)。只需将 str(var) 替换为 str(var) + "\n"

关于python - 将每个实例属性的 __str__ 用于类的 __str__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53530306/

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