【发布时间】:2018-06-06 09:10:14
【问题描述】:
在这段代码中:
class X:
def __init__(self, y=None):
self.y = y
self.z = []
try:
y.z.append(self)
except:
pass
a = X()
b = X(a)
c = X(a)
print(a.z)
我想打印 [b, c] 但它打印出类似这样的内容
out: <__main__.x object at 0x01775E70>, <__main__.x object at 0x01775E90>]
我该如何解决?
【问题讨论】:
-
请查看问题中的代码并修复缩进
-
有什么要解决的?这就是python代表
b和c的方式。 -
我想它发回给我正好 [b,c] 而不是他们的地址
-
b和c是对象(X 的实例),您希望 Python 如何知道您希望它们如何表示?如果您想要自定义表示,请阅读__repr__()和__str__()magic 方法。 -
不要将代码用作数据。如果您希望您的对象具有
.name属性,则为它们提供.name属性。
标签: python python-3.x class