【问题标题】:What is the difference between an instance and an object in Python?Python中的实例和对象有什么区别?
【发布时间】:2020-05-10 14:55:27
【问题描述】:

我知道这个问题已被多次询问和回答,但这些问题的答案并不能真正让人放心。每个人对两者都有不同的定义,这确实令人困惑。作为一个新手,我真的不知道该相信谁。有人可以澄清它们之间的区别吗?

【问题讨论】:

  • 分享您的研究对每个人都有帮助。链接您阅读过的帖子和文章,并解释您从中获得了什么以及您不理解的内容。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案。另见:How to Ask
  • Python documentation 区分 instance objects 和 method objects。会不会是你困惑的根源>

标签: python class object instance


【解决方案1】:

在 Python 中,everything 是一个对象。此外,在 Python 中,对象是类的实例,因此每个对象也是某个类的实例*。

但是,当我们想讨论一个或多个特定类的实例的行为时,我们通常会优先使用术语 instance 而不是 object

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

Bar 的两个实例不能比较相等...

所以我们可以说对象是最通用的术语,而实例是指作为特定类的实例的对象集合,而实例是指作为特定类的实例的特定对象。

简而言之,它们是相同的东西,但我们在不同的上下文中使用这些术语。

*Python 通过使object 成为type 的实例和type 的object 的实例来启用这种循环定义,object 和type 都是实例他们自己。

【讨论】:

  • 那么,可以公平地说,那个实例指的是关系,而对象不是吗?
  • 你说得对,我认为这是隐含的,不是吗?如果您想改进答案,请随时编辑。
【解决方案2】:

instance 和 object 实际上是同一个东西。当您创建一个类的实例时,该实例就是一个对象。

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

【讨论】:

  • 我不同意。是的,实例是对象。但并非所有对象都是实例。本质上,python 中的一切都是一个对象,甚至是类本身。
  • @JohanSchiff 你有一个不是的对象的例子,最终是一个类的实例吗?
  • 一个类还是一个方法?
  • @JohanSchiff 我想我们通常使用与特定类相关的实例,正如您所说,在大多数情况下,所有对象也是实例的事​​实并不是一个特别的观察。不过,元编程是一个不同的故事。无论如何,我认为我们大多是一致的;干杯!
  • @NirajRaut:每个实例都是一个对象。
猜你喜欢
  • 2011-02-22
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 2011-04-10
  • 2011-03-25
相关资源
最近更新 更多