gpt4 book ai didi

Python 预定义的 __str__ 方法行为异常

转载 作者:行者123 更新时间:2023-12-02 16:15:25 24 4
gpt4 key购买 nike

<分区>

下面是一个简单的 Python 类的定义。

class Student:
def __init__(self, name, grade):
self.name = name
self.grade = grade

def __str__(self):
return self.name

如您所见,我们覆盖了 __str__返回学生姓名的方法。例如,如果我声明一个变量 x = Student("Trevor", 7)随后调用 print(x) ,我看到了输出 Trevor在控制台中。一切都很好。

但是,如果我执行下面的代码片段,所发生的事情会出乎意料,几乎让我相信我们生活在一个模拟世界中,一切都不是真实的。

s1 = Student("James", 11)
s2 = Student("Charlie", 8)
s3 = Student("Alice", 9)
s4 = Student("Dana", 12)
students = [s1, s2, s3, s4]
print(students)

我的 Java 大脑期望输出为 [James, Charlie, Alice, Dana] , 但我看到的是 [<__main__.Student object at 0x00A7E6D0>, <__main__.Student object at 0x00AFB310>, <__main__.Student object at 0x00AFBB68>, <__main__.Student object at 0x00AFBAD8>] .

这怎么可能?怎么可能呢?我是真的吗?你是真的吗?我只是不明白。如何?为什么?为什么?

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