Python中实例和对象的区别是什么?

3

我知道这个问题已经被问过和回答过很多次了,但是那些问题的答案并没有真正缓解我的困惑。每个人都给出了不同的定义,这真的让我感到困惑。作为一个初学者,我真的不知道应该相信谁。请有人能够澄清它们之间的区别吗?


2
分享你的研究有助于每个人。链接你阅读过的帖子和文章,并解释你从中学到了什么,以及你没有理解的内容。这表明你已经花时间尝试帮助自己,它可以避免我们重复显而易见的答案,最重要的是它可以帮助你获得更具体和相关的答案。另请参见:[ask] - John Kugelman
1
Python文档将instance objectsmethod objects区分开来。这可能是你困惑的原因吗? - PM 77-1
2个回答

3
在Python中,所有东西都是对象。此外,在Python中,对象是类的实例,因此每个对象也是某个类的实例*
然而,当我们想要讨论特定类或类的实例的行为时,通常使用"实例"这个词,而不是"对象"。

Foo的实例提供以下操作...

不能将两个Bar的实例视为相等...

因此,我们可以说对象是最通用的术语,而实例是一组对象,这些对象是特定类或类的实例,并且特定对象是特定类的实例。
简而言之,它们是同一个东西,但我们在不同的上下文中使用这些术语。 *Python通过使object成为type的实例,并使type成为object的实例,使得这种循环定义成为可能,并且objecttype都是它们自己的实例。

那么,可以这样说,实例是指关系,而对象则不是吗? - Johan Schiff
你是对的,我认为这是隐式的,不是吗?如果您希望改进答案,请随意编辑。 - snakecharmerb

1

实例对象本质上是同一件事情。当您创建一个类的实例时,该实例就是一个对象。

换句话说,每个实例都是一个对象。这是“对象”的字面定义:一个类的实例


2
我不同意。是的,实例是对象。但并非所有对象都是实例。在Python中,基本上所有东西都是对象,甚至类本身也是对象。 - Johan Schiff
一个类还是一个方法? - Johan Schiff
@snakecharmerb,我想你是对的。那么元类或模块怎么样?此外,人们通常不会将类称为实例,我认为大多数程序员会觉得这很困惑。因此,即使这是真的,也许最好不要将类称为实例? - Johan Schiff
1
@JohanSchiff 我想我们通常在与特定类相关的情况下使用实例,正如你所说,在大多数情况下,所有对象也是实例这一事实并不是一个特别的观察。但元编程则是另一回事了。无论如何,我认为我们大多数人都是同意的;干杯! - snakecharmerb
1
@NirajRaut:每个实例都是一个对象。 - Bryan Oakley
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接