Python 的 type 和 object 之间是怎么一种关系

如题所述

Python的object和type理解
1、节选自Python Documentation 3.5.2的部分解释
Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects. (In a sense, and in conformance to Von Neumann’s model of a “stored program computer,” code is also represented by objects.)
对象是Python对数据的抽象。 Python程序中的所有数据都由对象或对象之间的关系表示。(在某种意义上,并且符合冯·诺依曼的“存储程序计算机”的模型,代码也由对象表示的)。
Every object has an identity, a type and a value. An object’s identity never changes once it has been created; you may think of it as the object’s address in memory. The ‘is‘ operator compares the identity of two objects; the id() function returns an integer representing its identity.
每个对象都有一个标识,一个类型和一个值。 对象的身份一旦创建就不会改变; 你可以把它看作内存中的对象地址。'is'运算符比较两个对象的标识; id()函数返回一个表示其身份的整数。
An object’s type determines the operations that the object supports (e.g., “does it have a length?”) and also defines the possible values for objects of that type. The type() function returns an object’s type (which is an object itself). Like its identity, an object’s type is also unchangeable.
对象的类型决定对象支持的操作(例如,“它有长度吗?”),并且还定义该类型对象的可能值。type()函数返回一个对象的类型(它是一个对象本身)。与它的身份一样,对象的类型也是不可改变的。
2、Pyhtml的解释:
object:
class object
The most base type
type:
class type(object)
type(object_or_name, bases, dict)
type(object) -> the object's type
type(name, bases, dict) -> a new type
从上面三个图可以看出,对象obeject是最基本的类型type,它是一个整体性的对数据的抽象概念。相对于对象object而言,类型type是一个稍微具体的抽象概念,说它具体,是因为它已经有从对象object细化出更具体抽象概念的因子,这就是为什么type(int)、type(float)、type(str)、type(list)、type(tuple)、type(set)等等的类型都是type,这也是为什么instance(type, object)和instance(object, type)都为True的原因,即类型type是作为int、float等类型的整体概念而言的。那么,为什么issubclass(type, object)为True,而issubclass(object, type)为Flase呢?从第二张图,即从继承关系可以看到,type是object的子类,因此前者为True,后者为False。若从Python语言的整体设计来看,是先有对象,后有相对具体的类型,即整体优先于部分的设计思想。
如果从更加本质的视角去看待这些问题的话,就要从Python Documentation-->3. Data Model-->3.1 Objects,values and types找原因了[请参考Python官方标准库],从标准库里可以看到:
object是Python对数据的抽象,它是Python程序对数据的集中体现。
每个对象都有一个标识,一个类型和一个值。
对象的类型决定对象支持的操作。
某些对象的值可以更改。 其值可以改变的对象称为可变对象;对象的值在创建后不可更改的对象称为不可变对象。
因此,从Python整体设计体系来看的话,就是先有对象,再有标识、类型和值,接着是对对象的操作等等,这也就解释了图3的结果形成的原因了。
温馨提示:内容为网友见解,仅供参考
无其他回答

python关键字object和type
一切皆对象,这是Python的核心概念。数字2、函数、方法都是对象。object和type是Python的两个基础对象,object是所有类的超类,type是所有类型的元类型。object自身没有超类,它是所有对象的根源。type的类型也是type,它既是对象,也是获取其他对象类型的工具。检查object的类型,结果是object是type的实例。o...

Python 的 type 和 object 之间是怎么一种关系
对象是Python对数据的抽象。 Python程序中的所有数据都由对象或对象之间的关系表示。(在某种意义上,并且符合冯·诺依曼的“存储程序计算机”的模型,代码也由对象表示的)。Every object has an identity, a type and a value. An object’s identity never changes once it has been created; you m...

第一章: Python中一切皆对象
2.type,object,class之间的关系 注意几点 1.type是python的一切的源头,python中所有的对象都是由type创建. 2.而之所以可以做到一切皆对象,是因为type本身也是它自己的对象.也就是说type(type) 的返回值还是'type' 3.Python中所有的类,如果没有显示的指定父类,都默认继承自object类. 4....

type在python中的用法
5、使用只使用一个参数:>>>print(type(1))#输出,>>>print(typr('str'))#输出使用三个参数:classX(object):,a=1,X=type('X',(object,),dict(a=1))#产生一个新的类型Xprint(X)#输出:。

如何理解python的类与对象
那么Python里的类和其他的对象有什么区别?实例是对象,因为创建实例的是类.类是对象,创建类的是什么呢?Python给的答案就是元类.你可以通过type()函数来查看它的元类.(type(type)得到的是它自己)其实这个类和其他对象一样,所以我们就不惊讶它为什么有类方法,类变量了.....

python3 爬取下来的数据是字典形式的为什么用type()判断的时候报错'int...
因为 raw_input 接收输入返回的是 string,所以要转换为整型才能正确执行。input 其实等价于 eval(raw_input(prompt))

python中怎么查看数据的类型
在Python编程中,了解变量的数据类型是至关重要的。当你对某个变量的类型感到困惑时,有两个内置函数可以帮助你解决问题:`isinstance()`和`type()`。首先,`isinstance(object, (type1, type2...))`函数的作用是检查一个对象是否属于特定的类型列表。例如,`isinstance('content', str)`会返回`...

Python科普系列——类与方法(上篇)
类的本质与对象的映射关系 在Python中,类、对象和字典类型本质上是映射结构。类定义如图所示,直观体现了类的基本概念。字典作为映射结构的一个实例,展示了键值对的增删查改能力。类和字典之间的关系,揭示了它们在Python中相似的内部结构。类与对象的内部结构通过dir和__dict__进行展示。类和对象包含了...

python中的instance是什么对象类型
在python2中,如果定义类时继承了object,那么实例化后对象的type就是该类>>>classApple(object):pass>>>red_apple=Apple()>>>type(red_apple)>>>但如果定义类的时候没有继承object,实例化后对象的type将会是instance>>>cla

python里怎么查看数据类型
`type(1)`会返回``,表示一个整数类型;`type('school')`会返回``,表示字符串类型;`type([2])`则返回``,表示列表类型;`type({0:'zero'})`会返回``,表示字典类型。通过这种方式,你可以快速了解任何Python变量的性质和结构。例如,要判断一个变量`x`是否为整数类型,可以使用`type( x ...

相似回答