Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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_Object - Fatal编程技术网

什么是;“东西”;意思是当有人说;Python中的一切都是对象;?

什么是;“东西”;意思是当有人说;Python中的一切都是对象;?,python,object,Python,Object,我经常看到人们说“Python中的一切都是对象”,但我还没有看到“东西”的实际定义。这句话会让我相信,任何类型的标记也都被视为对象,包括运算符、标点符号、空格等。真的是这样吗?有没有更简洁的方式来说明Python对象实际上是什么 谢谢任何可以分配给变量的东西都是对象 这包括函数、类和模块,当然还有int、str、float、list,以及其他所有内容。它不包括空格、标点符号或运算符 值得一提的是,标准库中有操作符模块,其中包括实现操作符的函数;这些函数是对象。这并不意味着+或*是对象 我可以继续

我经常看到人们说“Python中的一切都是对象”,但我还没有看到“东西”的实际定义。这句话会让我相信,任何类型的标记也都被视为对象,包括运算符、标点符号、空格等。真的是这样吗?有没有更简洁的方式来说明Python对象实际上是什么


谢谢

任何可以分配给变量的东西都是对象

这包括函数、类和模块,当然还有
int
str
float
list
,以及其他所有内容。它不包括空格、标点符号或运算符

值得一提的是,标准库中有
操作符
模块,其中包括实现操作符的函数;这些函数是对象。这并不意味着
+
*
是对象


我可以继续讲下去,但这很简单,也很完整。

任何可以分配给变量的东西都是对象

这包括函数、类和模块,当然还有
int
str
float
list
,以及其他所有内容。它不包括空格、标点符号或运算符

值得一提的是,标准库中有
操作符
模块,其中包括实现操作符的函数;这些函数是对象。这并不意味着
+
*
是对象


我可以继续讲下去,但这很简单,也很完整。

通常的意思是,大多数东西,例如函数和方法都是对象。模块也是。类(不仅仅是它们的实例)本身就是对象。和int/float/string是对象。因此,是的,在Python中,对象通常是对象。Cyphase是正确的,我只是想给出一些东西的例子,这些东西可能不会作为对象立即显现出来

作为对象,那么许多属性可以在你认为是特殊情况的事物中被观察到,用其他语言进行烘焙。尽管在Python中允许任意属性赋值的_udict u uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

因此,至少在纯Python对象上,可以发生很多神奇的事情,从内省到动态创建新的类等


有点像海龟。

通常的意思是,大多数东西,例如函数和方法都是对象。模块也是。类(不仅仅是它们的实例)本身就是对象。和int/float/string是对象。因此,是的,在Python中,对象通常是对象。Cyphase是正确的,我只是想给出一些东西的例子,这些东西可能不会作为对象立即显现出来

作为对象,那么许多属性可以在你认为是特殊情况的事物中被观察到,用其他语言进行烘焙。尽管在Python中允许任意属性赋值的_udict u uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

因此,至少在纯Python对象上,可以发生很多神奇的事情,从内省到动态创建新的类等


一直以来都有点像乌龟。

有些值显然是对象;它们是类的实例,具有属性等

>>> i = 3
>>> type(i)
<type 'int'>
>>> i.denominator
1
模块是对象:

>>> type(int)
<type 'type'>
>>> int.__mul__(3, 5)
15
>>> import sys
>>> type(sys)
<type 'module'>
>>> type(sum)
<type 'builtin_function_or_method'>
导入系统 >>>类型(系统) 内置函数是对象:

>>> type(int)
<type 'type'>
>>> int.__mul__(3, 5)
15
>>> import sys
>>> type(sys)
<type 'module'>
>>> type(sum)
<type 'builtin_function_or_method'>
>类型(总和)

简而言之,如果你可以通过名称引用它,它就是一个对象。

一些值显然是对象;它们是类的实例,具有属性等

>>> i = 3
>>> type(i)
<type 'int'>
>>> i.denominator
1
模块是对象:

>>> type(int)
<type 'type'>
>>> int.__mul__(3, 5)
15
>>> import sys
>>> type(sys)
<type 'module'>
>>> type(sum)
<type 'builtin_function_or_method'>
导入系统 >>>类型(系统) 内置函数是对象:

>>> type(int)
<type 'type'>
>>> int.__mul__(3, 5)
15
>>> import sys
>>> type(sys)
<type 'module'>
>>> type(sum)
<type 'builtin_function_or_method'>
>类型(总和)

简而言之,如果你可以用名字引用它,它就是一个对象。

< p>你不会发现像C++ 11那样的严格定义,因为Python没有像C++ 11那样的正式规范,它有一个类似的预ISO C++。本章非常严谨:

对象是Python对数据的抽象。Python程序中的所有数据都由对象或对象之间的关系表示。(在某种意义上,与冯·诺依曼的“存储程序计算机”模型一致,代码也由对象表示。)

每个对象都有一个标识、一个类型和一个值。对象的标识在创建后不会改变;您可以将其视为对象在内存中的地址

此外,还有一个较短的定义:

具有状态(属性或值)和已定义行为(方法)的任何数据

确实,Python中的所有东西都有方法和(其他)属性。即使没有公共方法,也有一组从
对象
基类继承的特殊方法和值,比如
\uuu str\uu
方法


这在Python 2.2之前的版本中是不正确的,这也是为什么我们对几乎相同的对象、数据、值使用多个单词的部分原因;类型、类别……但从那时起,以下类型的内容是相同的:

  • 对象
  • 函数可以返回或产生的东西
  • 可以存储在变量(包括参数)中的内容
  • 属于
    object
    类型的实例(通常通过一个或两个子类间接)
  • 可以是表达式产生的值的事物
  • 在CPython中由指向
    PyObject
    结构的指针表示的事物
……等等

这就是“一切都是对象”的意思

这也意味着Python没有像Java那样的“本机类型”和“类类型”,也没有像C#那样的“值类型”和“引用类型”;th