python数据类型是类还是数据结构?

python数据类型是类还是数据结构?,python,Python,我对python编程一无所知。我参考了不同的python教程,很少有作者说python中的Numbersint、float、complex、list、set、tuple、dictionary、string都是数据类型一些主题说数据结构很少有人说类。我不知道哪一个是正确的 我正在写一篇关于Python的文章,在一个随机网站上发现了这句话,只是想知道是否有人能澄清并证明你的答案。术语数据类型和类在Python中是同义词,它们对于你给出的示例都是正确的。与其他一些语言不同,Python中没有简单的类型

我对python编程一无所知。我参考了不同的python教程,很少有作者说python中的Numbersint、float、complex、list、set、tuple、dictionary、string都是数据类型一些主题说数据结构很少有人说类。我不知道哪一个是正确的


我正在写一篇关于Python的文章,在一个随机网站上发现了这句话,只是想知道是否有人能澄清并证明你的答案。

术语数据类型和类在Python中是同义词,它们对于你给出的示例都是正确的。与其他一些语言不同,Python中没有简单的类型,在Python中使用变量可以指向的所有对象都是对象。另一方面,术语数据结构可能应该为容器类型保留,例如集合、元组、字典或列表。

术语数据类型和类在Python中是同义词,它们对于您给出的示例都是正确的。与其他一些语言不同,Python中没有简单的类型,在Python中使用变量可以指向的所有对象都是对象。另一方面,术语数据结构可能应该保留给容器类型,例如集合、元组、字典或列表。

确切含义随着时间的推移略有变化。python 3的最新版本是最简单和最一致的,因此我将对此进行解释

让我们从两种东西开始:价值观和价值观的类型

python中的值可以是数字、列表甚至函数

值的类型描述了这些。例如,数字的类型可能是int

到目前为止,我们只考虑了语言中固有的东西。但是你也可以定义你自己的东西。为此,您定义了一个新类。在python 3中,type函数会说类实例的类型就是类本身:

因此,您可以定义一个名为MyFoo的类:

>>> class MyFoo:
>>>     def __init__(self, a):
>>>         self.a = a
>>>
>>> foo = MyFoo(1)
>>> type(foo)
<class '__main__.MyFoo'>
将其与整数进行比较:

>>> type(1)
<class 'int'>
很明显,你的价值类型就是它的类别

因此python中的值,例如数字、列表甚至函数都是类的实例。值的类型是描述其行为的类

现在事情变得更复杂了,因为您还可以将类型指定给值!然后您有一个类型为的值:

>>> x = type(1)
>>> type(x)
<class 'type'>
事实证明,任何类型的类型都是类型。这意味着任何类本身都是类型的实例。这有点奇怪。但这是一贯的,你通常不需要担心

总之,对于最简单的python 3:

每个值都有一个类型 类型描述值的工作方式 类型是类 类实例的类型是它的类 数字、列表、函数、用户定义的对象都是类的实例 甚至类也是类的实例!它们是类型的实例!
最后,试着回答你的确切问题。我认为,有些人将类称为数据类型,将实例称为数据结构。这是混乱和混乱,人们不是很小心。坚持使用类和类型是最简单的,因为它们实际上和实例是一样的。

确切的含义随着时间的推移略有变化。python 3的最新版本是最简单和最一致的,因此我将对此进行解释

让我们从两种东西开始:价值观和价值观的类型

python中的值可以是数字、列表甚至函数

值的类型描述了这些。例如,数字的类型可能是int

到目前为止,我们只考虑了语言中固有的东西。但是你也可以定义你自己的东西。为此,您定义了一个新类。在python 3中,type函数会说类实例的类型就是类本身:

因此,您可以定义一个名为MyFoo的类:

>>> class MyFoo:
>>>     def __init__(self, a):
>>>         self.a = a
>>>
>>> foo = MyFoo(1)
>>> type(foo)
<class '__main__.MyFoo'>
将其与整数进行比较:

>>> type(1)
<class 'int'>
很明显,你的价值类型就是它的类别

因此python中的值,例如数字、列表甚至函数都是类的实例。值的类型是描述其行为的类

现在事情变得更复杂了,因为您还可以将类型指定给值!然后您有一个类型为的值:

>>> x = type(1)
>>> type(x)
<class 'type'>
事实证明,任何类型的类型都是类型。这意味着任何类本身都是类型的实例。这有点奇怪。但这是一贯的,你通常不需要担心

总之,对于最简单的python 3:

每个值都有一个类型 类型描述值的工作方式 类型是类 类实例的类型是它的类 数字、列表、函数、用户定义的对象都是类的实例 甚至类也是类的实例!它们是类型的实例! 最后,试着回答你的确切问题。我认为,有些人将类称为数据类型,将实例称为数据结构。
这是混乱和混乱,人们不是很小心。最简单的方法是坚持使用与实际情况和实例相同的类和类型。

数据类型是对一种数据的描述:什么类型的值可以是这种类型的实例,以及可以对它们执行什么类型的操作

类是表示数据类型的一种方法,但不是唯一的方法,它将类型上的操作视为对象类型实例上的方法。这是所有基于类的语言的通用术语。但是Python对类也有特定的含义:由class语句定义的东西,或者在满足特定需求的内置/扩展代码中定义的东西,就是类

因此,任意大小的整数和映射字典都是数据类型。在Python中,它们由内置类int和dict表示

数据结构是一种组织数据以实现高效或轻松访问的方法。这与数据类型没有直接关系。在许多语言如C++或java中,定义一个新类需要你告诉编译器如何将实例的成员放在内存中,以及类似的东西,但是在Python中,你只需构造对象并向它们添加成员,解释器就可以计算出如何组织它们。在构建扩展模块或使用ctypes构建包装器类时,会出现一些异常,但不要担心这一点

当您使用更高级别的抽象数据结构(如基于指针的节点)和较低级别的抽象数据类型(如可以在头部执行恒定时间插入和删除的保持顺序的元素集合)时,事情就会变得模糊。链表是一种本质上需要特定数据结构的数据类型,还是一种定义明显数据类型的数据结构?好吧,除非你在大学主修计算机科学,否则只要你理解这个问题,答案就不会有多大区别


映射字典是数据类型,但它们也是抽象的数据结构,Python的dict对象是从一个特定的具体数据结构构建的,带有二次探测的开放链式哈希表,它仍然是部分抽象的,每个bucket包含一个duck类型的值。

数据类型是对一种数据的描述:什么类型的值可以是这种类型的实例,以及可以对它们进行什么样的操作

类是表示数据类型的一种方法,但不是唯一的方法,它将类型上的操作视为对象类型实例上的方法。这是所有基于类的语言的通用术语。但是Python对类也有特定的含义:由class语句定义的东西,或者在满足特定需求的内置/扩展代码中定义的东西,就是类

因此,任意大小的整数和映射字典都是数据类型。在Python中,它们由内置类int和dict表示

数据结构是一种组织数据以实现高效或轻松访问的方法。这与数据类型没有直接关系。在许多语言如C++或java中,定义一个新类需要你告诉编译器如何将实例的成员放在内存中,以及类似的东西,但是在Python中,你只需构造对象并向它们添加成员,解释器就可以计算出如何组织它们。在构建扩展模块或使用ctypes构建包装器类时,会出现一些异常,但不要担心这一点

当您使用更高级别的抽象数据结构(如基于指针的节点)和较低级别的抽象数据类型(如可以在头部执行恒定时间插入和删除的保持顺序的元素集合)时,事情就会变得模糊。链表是一种本质上需要特定数据结构的数据类型,还是一种定义明显数据类型的数据结构?好吧,除非你在大学主修计算机科学,否则只要你理解这个问题,答案就不会有多大区别


因此,映射字典是数据类型,但它们也是抽象的数据结构,在封面下,Python的dict对象是从一个特定的具体数据结构构建的,带有二次探测的开放链哈希表,它仍然是部分抽象的。每个bucket都包含一个duck类型的值。

Python中的所有内容都是对象。类是一种数据类型。一个足够复杂的类是一个数据结构。我猜你是C语言背景的?你得改变一下想法。只要开始使用python教程来编写代码,看看高级语言的本质,python中的一切都是对象。类是一种数据类型。一个足够复杂的类是一个数据结构。我猜你是C语言背景的?你得改变一下想法。只要开始使用python教程编写代码,就可以了解高级语言的本质,
你是说集合、元组、字典或列表都是数据结构,而不是数据类型?@user1559873-不,它们都是数据类型和数据结构。数值类型int、long和float都是数据类型,但称它们为数据结构可能会令人困惑,但也不一定是错误的。感谢F.J,你的意思是集合、元组、字典或列表都是数据结构,而不是数据类型?@user1559873-不,它们都是数据类型和数据结构。数值类型int、long和float都是数据类型,但将它们称为数据结构会让人困惑,但也不一定是错误的。这里的实例是什么意思?这意味着什么-类的实例类型是它的类这里的实例是什么意思?这意味着什么-类实例的类型是它的类