有关实例与对象的stackoverflow的所有其他答案都引用了本书尚未涵盖的类。 这是代码:
world= TurtleWorld()
bob= Turtle()
print bob
wait_for_user()
这就是结果:
它在盒子中显示乌龟,并打印
<swampy.TurtleWorld.Turtle object at 0x03C3D730>
这本书说它应该说'实例',而不是对象。有什么区别,我做错了什么?
答案 0 :(得分:1)
你有一个实例;实例是Python对象的种。如果你没有实例,你会看到不同的东西:
<class 'swampy.TurtleWorld.Turtle'>
现在,在Python 2中使用旧式类,它确实会说instance
;我可以通过而不是继承object
:
>>> class Turtle: pass
...
>>> Turtle()
<__main__.Turtle instance at 0x10199fe18>
但是,当前swampy release使用新式类;该类继承自object
:
>>> from swampy.TurtleWorld import Turtle
>>> Turtle.__mro__
(<class 'swampy.TurtleWorld.Turtle'>, <class 'swampy.World.Animal'>, <type 'object'>)
新式课程做的事情略有不同,有些事情已经重新命名和统一。我认为您使用的是第一版Think Python,基于不使用新式类的代码。
你可以完成你的教程,只需要进行一些细微的修饰,比如这些。
但是,你可能想找一本更新,更新的书;例如,Think Python使用Python 3进行了第2版。