【发布时间】:2021-12-11 23:28:40
【问题描述】:
我正在学习 Python 中的 OOP,并且正在制作一个包含 5 个骰子的游戏。我创建了Dado 对象来表示我的骰子,并创建了GeraDado 对象来实际创建Dado 对象。如果我创建一个对象,例如d1 = GeraDado(),我可以使用d1.valor() 方法打印它的值,但是如果我尝试将它的值附加到列表或字典中,它会返回None。如果我执行print(d1),它会返回对象在内存中的位置,而不是值。我怎样才能让它返回 d1 = GeraDado() 值而不是使用 d1.valor() 方法,它只是在屏幕上打印值?
from random import randint
class Dado:
def __init__(self, valor):
self.__valor = valor
def valor(self):
print(self.__valor)
class GeraDado:
def __init__(self):
self.__dado = Dado(randint(1,6))
def dado(self):
self.__dado.valor()
d1 = GeraDado()
print(d1)
【问题讨论】:
-
列表中的
append方法返回None,只要您在列表末尾看到它,它就可以正常运行。您想覆盖__str__方法以返回您认为类的“正确”字符串表示形式。通过默认 python 输出内存中的位置以及其他一些元数据