gpt4 book ai didi

python - 直接调用时如何使python对象返回属性数据

转载 作者:太空狗 更新时间:2023-10-30 02:24:46 38 4
gpt4 key购买 nike

所以我想在 Python 中做这样的事情:

class Person:
def __init__(self, name, age):
self.name = name
self.age = age

def __repr__(self):
return self.name, self.age

p = Person('A', 20)

然后希望直接调用对象p得到元组(self.name, self.age)

但是正如您在运行该程序时看到的那样,您遇到了问题:

TypeError: __repr__ returned non-string (type tuple)

怎么会有这种行为?

谢谢!

注意:问题不特定于元组数据类型;它可以是任何东西,例如 pandas 数据框。我只想返回一些属性数据,无论它是什么类型。

最佳答案

正如错误提示的那样,您的__repr__ 必须返回一个字符串

def __repr__(self):
return self.name + str(self.age)

现在,如果您的目标是编写一种将对象表示为元组的自定义方式,那么您正在寻找的是 _iter__

def __iter__(self):
yield self.name
yield self.age

p = Person('A', 20)
print(tuple(p))
>>>>('A', 20)

关于python - 直接调用时如何使python对象返回属性数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51672288/

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