Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的对象是什么?_Python_Oop_Object - Fatal编程技术网

Python中的对象是什么?

Python中的对象是什么?,python,oop,object,Python,Oop,Object,我很惊讶以前没有人问我的问题(措辞如上所述)。我希望有人能在像Python这样的面向对象语言的上下文中分解这个基本术语“对象”。以我这样的初学者能够掌握的方式解释 当我在谷歌上输入我的问题时,出现的第一篇帖子就被找到了 这就是定义: 使用类的构造函数创建对象。然后,该对象将被称为类的实例 定义如下: 对象是类的实例。对象是一种抽象。它们同时保存数据和操作数据的方法。数据通常在对象外部不可见 我希望有人能帮助我打破这个重要的概念,或亲切地告诉我更多的资源。谢谢 要深入研究,你需要了解问题的本质 但

我很惊讶以前没有人问我的问题(措辞如上所述)。我希望有人能在像Python这样的面向对象语言的上下文中分解这个基本术语“对象”。以我这样的初学者能够掌握的方式解释

当我在谷歌上输入我的问题时,出现的第一篇帖子就被找到了

这就是定义: 使用类的构造函数创建对象。然后,该对象将被称为类的实例

定义如下: 对象是类的实例。对象是一种抽象。它们同时保存数据和操作数据的方法。数据通常在对象外部不可见


我希望有人能帮助我打破这个重要的概念,或亲切地告诉我更多的资源。谢谢

要深入研究,你需要了解问题的本质

但是如果你想要一份有光泽的stackoverflow备忘单,让我们从一本字典开始。(为了避免循环定义,我们同意字典至少是键到值的映射。在这种情况下,我们甚至可以说键绝对是字符串。)

因此,一个对象就是这样一个映射,带有一些额外的语法糖,允许您使用点符号访问“键”

现在,事情远不止这些。(事实上,如果你想理解python之外的内容,我建议你)你必须接着说“但是什么是实例?”和“你怎么能在字典中迭代这样的条目?”以及“什么是类型系统”?其中一些问题在Skam的精细回答中得到了解决

我们可以讨论python dunder方法,以及它们基本上是如何实现本机行为的协议,如
大小
(长度)、可比较类型(x

但是,由于这个问题基本上是博士级的,我想我的答案会非常简化,看看你是否想限制这个问题。

在Python和所有其他面向对象编程(OOP)语言的上下文中,对象有两个主要特征:状态和行为

您可以将构造函数看作是一个工厂,它创建具有状态和行为的对象实例

State-与该对象关联的任何实例或类变量。

行为-任何实例或类方法

下面是Python中的一个类示例,用于说明其中的一些概念

class Dog:
    SOUND = 'woof'
    def __init__(self, name):
        """Creates a new instance of the Dog class.

        This is the constructor in Python.
        The underscores are pronounced dunder so this function is called
        dunder init.
        """ 
        # this is an instance variable.
        # every time you instantiate an object (call the constructor)
        # you must provide a name for the dog
        self._name = name

    def name(self):
        """Gets the name of the dog."""
        return self._name

    @classmethod
    def bork(cls):
        """Makes the noise Dogs do.

        Look past the @classmethod as this is a more advanced feature of Python.
        Just know that this is how you would create a class method in Python.
        This is a little hairy.
        """
        print(cls.SOUND)
虽然我同意关于这个问题有点模糊的评论。请更具体一点,但我提供的答案是Python中类和对象的快速概述。

一切都是对象 对象是面向对象语言的基本构造块。整数、字符串、浮点数、甚至数组和字典都是对象。更具体地说,任何单个整数或任何单个字符串都是一个对象。数字12是一个对象,字符串“hello,world”是一个对象,列表是一个可以容纳其他对象的对象,依此类推。您一直在使用对象,甚至可能没有意识到这一点

对象具有类型 每个对象都有一个类型,该类型定义了可以对该对象执行的操作。例如,
int
类型定义向int添加内容时发生的情况,以及尝试将其转换为字符串时发生的情况,等等

从概念上讲,如果不是字面意义上的话,类型的另一个词是class。定义类时,本质上就是定义自己的类型。就像
12
是整数的实例,而
“hello world”
是字符串的实例一样,您可以创建自己的自定义类型,然后创建该类型的实例。每个实例都是一个对象

类只是自定义类型 除了在显示器上打印字符串之外,大多数程序需要管理的不仅仅是数字和字符串。例如,您可能正在编写一个处理图片的程序,如photoshop。或者,您可能正在创建iTunes的竞争对手,需要操纵歌曲和歌曲集。或者你正在写一个程序来管理食谱

一张图片、一首歌或一份食谱都是特定类型的对象。唯一的区别是,对象不是语言提供的类型(例如:整数、字符串等),而是您自己定义的类型

  • 对象只是一组数据(变量)和作用于数据的方法(函数)

  • 类是该对象的蓝图


这个问题太宽泛了。答案可能从一个段落到一篇博客文章。请仔细阅读,尤其是文档。简而言之,
object
是python中最基本的类型;你将与之互动的一切都是某种具有更具体属性和行为的对象。我同意这个问题很广泛:标准答案是。我想听听O.P.是否能缩小他们的提问范围。嗨,伙计们,我真的很感谢你们的评论,我现在明白了,这是多么模糊。不幸的是,我在编程方面的词汇量还很初级,因此无法在你们通常交流的水平上表达自己。我会接受小二郎下面的回答,因为这实际上是我在寻找的。我的结论是“对象”是基本的,但可以非常深入,并且现在在寻找明确的答案时会更加轻松。谢谢大家<代码>self.SOUND
将创建一个实例变量。嘿,我对这篇文章进行了升级,因为它涵盖了状态和行为,特别是对象的实例,这是最基本的例子,我对自己在回答中没有涵盖这一点感到有点恼火。谢谢Skam,也感谢这个答案!抱歉,无法更恰当地定义我的问题。\uuuu init\uuuuuu不是
class Dog:
    SOUND = 'woof'
    def __init__(self, name):
        """Creates a new instance of the Dog class.

        This is the constructor in Python.
        The underscores are pronounced dunder so this function is called
        dunder init.
        """ 
        # this is an instance variable.
        # every time you instantiate an object (call the constructor)
        # you must provide a name for the dog
        self._name = name

    def name(self):
        """Gets the name of the dog."""
        return self._name

    @classmethod
    def bork(cls):
        """Makes the noise Dogs do.

        Look past the @classmethod as this is a more advanced feature of Python.
        Just know that this is how you would create a class method in Python.
        This is a little hairy.
        """
        print(cls.SOUND)