从列表 Python 错误中打印 __init__ 对象 [重复]
Posted
技术标签:
【中文标题】从列表 Python 错误中打印 __init__ 对象 [重复]【英文标题】:Printing __init__ object from list Python error [duplicate] 【发布时间】:2019-06-13 03:21:14 【问题描述】:我正在尝试根据我的班级设置从列表中打印一个对象。
from math import *
import time
class MyClass:
def __init__(self, name, age):
self.name = name
self.age = age
people = [MyClass("David",17),
MyClass("George",63),
MyClass("Zuck",12),
MyClass("Mark",18)
]
print(people[2])
但它会打印出:main.MyClass object at 0x0000000003129128> 我希望它打印“Zuck”
【问题讨论】:
这是默认表示,不是错误。你想让它打印什么? 请更新您的问题以包含您的预期输出。 你还没有告诉 Python 如何打印你的类!已在此处回答:***.com/questions/4932438/… 【参考方案1】:那是因为你的数组包含对象,所以当你打印它们时,它们被打印为对象表示。我知道你想要的是打印它的内容。
为此,您必须使用 __str__
方法指定打印时要如何呈现实例:
from math import *
import time
class MyClass:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return "name: , age: ".format(self.name, self.age)
【讨论】:
我想这样做,但我必须等待 4m 还有一个问题,最后一行不能是return "name: , age: ".format(name, age)
你可以返回任何东西,甚至是像"Hello"
这样的常量
在您的情况下,您会收到错误消息,因为age
和name
是实例变量,因此它们必须使用self.
进行限定。如果它们在__str__()
的主体中声明,它们可以在没有自我限定的情况下被引用,但它们将是与__init__()
中声明的变量不同的变量。
哦,是的,我想我明白了,我很抱歉我的愚蠢。谢谢以上是关于从列表 Python 错误中打印 __init__ 对象 [重复]的主要内容,如果未能解决你的问题,请参考以下文章