Python 为什么我的恐龙课给a<__0x026B5210处的主要恐龙对象>;错误

Python 为什么我的恐龙课给a<__0x026B5210处的主要恐龙对象>;错误,python,python-3.x,class,representation,Python,Python 3.x,Class,Representation,我写了这节课: class Dinosaurus: def __init__(self, nimi, suurus, värv, toit): self.nimi = nimi self.suurus = suurus self.värv = värv self.toit = toit 但是当我尝试使用它时 Dinosaur = Dinosaurus ("Stegosaurus", "20", "sinine", "Li

我写了这节课:

class Dinosaurus:

    def __init__(self, nimi, suurus, värv, toit):
        self.nimi = nimi
        self.suurus = suurus
        self.värv = värv
        self.toit = toit
但是当我尝试使用它时

Dinosaur = Dinosaurus ("Stegosaurus", "20", "sinine", "Liha")

print(Dinosaur)
我得到一个错误:

<__main__.Dinosaurus object at 0x026B5210>

我做错了什么?

不是一个错误-它是对象的表示

一些实验表明,
恐龙
具有您赋予它的所有属性:

>>> Dinosaur = Dinosaurus ("Stegosaurus", "20", "sinine", "Liha")
>>> Dinosaur
<__main__.Dinosaurus object at 0x7f893d9b5320>
>>> Dinosaur.nimi
'Stegosaurus'
>>> Dinosaur.suurus
'20'
>>> Dinosaur.värv
'sinine'
>>> Dinosaur.toit
'Liha'


您还可以定义一种方法,在打印对象时,如果两者都已定义,Python将优先使用该方法。您应该将
\uuuuu str\uuuuu
视为返回一个对象的非正式的、人性化的表示,而将
\uuuuuuu repr\uuuuu
视为正式表示(如果可能的话,它应该是一个有效的Python表达式,可以用来生成它的精确副本,如我上面的示例所示).

这不是错误。请检查@juanpa.arrivillaga提供的可能重复链接。如果您想要打印一个人类可读的字符串,您需要通过在类上实现一个
\uu str
方法来告诉Python如何这样做。这不是重复的。链接问题询问如何改变对象的表示,而这个问题是基于对其表示是某种错误的误解。
class Dinosaurus:

    def __init__(self, nimi, suurus, värv, toit):
        self.nimi = nimi
        self.suurus = suurus
        self.värv = värv
        self.toit = toit

    def __repr__(self):
        return 'Dinosaurus(%r, %r, %r, %r)' % (self.nimi, self.suurus, self.värv, self.toit)
>>> Dinosaur = Dinosaurus ("Stegosaurus", "20", "sinine", "Liha")
>>> print(Dinosaur)
Dinosaurus('Stegosaurus', '20', 'sinine', 'Liha')