Скажем, у меня есть класс ElementКак работает функция print()?
class Element(object):
def __init__(self,key,val):
self.key = key
self.val = val
def __str__(self):
return '(' + str(self.key) + ',' + str(self.val) + ')'
Теперь, когда я пытаюсь напечатать массив, содержащий объекты класса Element
arr = [Element(10,20),Element(20,30)]
print(arr)
, выход -
[<maxheap.Element object at 0x01C1FCB0>, <maxheap.Element object at 0x01C270B0>]
Какие функция печати <maxheap.Element object at 0x01C1FCB0>
? Почему не метод __str__(self)
, называемый как print(Element(10,20))
?
Возможный дубликат [Разница между \ _ \ _ str \ _ \ _ и \ _ \ _ repr \ _ \ _ в Python] (http://stackoverflow.com/questions/1436703/difference-between-str-and- rep-in-python) – mkrieger1