当前位置: 首页 > 知识库问答 >
问题:

Python中的类与类型

束俊材
2023-03-14

我最近才开始自学如何编码。我目前正在阅读Think Python2 for Python3,当它介绍type()函数时,它给出了输出

让我困惑的部分是type()函数输出的是class而不是type。此外,我不确定类型和类之间的区别;字符串、浮点和整数类的类型是“值”,还是它们是一回事?

我已经查过了,但找不到具体问题的答案,也找不到足够简单让我理解的答案。


共有2个答案

越狐若
2023-03-14

python层次结构是类型(元类)-

如果对int(任何整数)的实例使用函数type(),如下所示:type(123),您将收到实例的类,在本例中为int。如果您将在类int上使用type(),您将收到type type,它是int的元类。

请记住,元类是python的高级技术细节,您不需要一开始就了解它们。

彭华皓
2023-03-14

很久以前,Python既有类型又有类。类型是在C中定义的内置对象;类是在使用class语句时构建的。这两个名称不同,因为您不能混合它们;类不能扩展类型。

这种差异是人为的,是语言实现中的一个限制。从Python 2.2开始,Python的开发人员慢慢地走向统一这两个概念,在Python 3中几乎没有区别。内置类型现在也被标记为类,您可以随意扩展它们。

您的书试图解释Python中不再存在的差异。即使在Python2中,区别也只是在名称上,因为type(2)显示“type”一词仍然在那里使用:

>>> type(2)
<type 'int'>

但是您可以像其他任何类一样将int子类化。

(Python 2仍然有旧风格的类,那些没有从对象继承的类;这些是统一之前旧系统的残余。)

 类似资料:
  • 问题内容: 我刚刚开始自学如何编码。我目前正在阅读适用于python 3的 Think Python 2 ,并且在讲授该功能时,给出了输出示例。然后声明“在类别的意义上使用了“类”一词;类型是值的类别。” 令我困惑的部分是函数输出类而不是类型。另外,我不确定类型和类之间的区别。是字符串,浮点数和“值”类型的整数类,还是同一件事? 我已经查询了一下,但是找不到我的特定问题的答案,或者太简单了,无法理

  • 本文向大家介绍Python中的类与类型示例详解,包括了Python中的类与类型示例详解的使用技巧和注意事项,需要的朋友参考一下 1.经典类与新式类 在了解Python的类与类型前,需要对Python的经典类(classic classes)与新式类(new-style classes)有个简单的概念。 在Python 2.x及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位

  • 本文向大家介绍理解Python中的类与实例,包括了理解Python中的类与实例的使用技巧和注意事项,需要的朋友参考一下 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 仍以Student类为例,在Python中,定义类是通过class关键

  • 问题内容: 使用Python 2.7,我想知道使用type代替真正的优势是什么,因为它们似乎都可以容纳Unicode字符串。除了能够使用转义字符在字符串中设置Unicode代码之外,还有什么特殊的原因吗?: 使用以下命令执行模块: 结果:á,á 编辑: 使用Python Shell进行更多测试: 因此,该字符串似乎是使用而不是编码的,而原始字符串是使用?编码的 我现在更困惑了!:S 问题答案: 用

  • 问题内容: 我对什么是不可变类型感到困惑。我知道该float对象被认为是不可变的,在我的书中有这样的例子: 由于类的结构/层次结构,这是否被认为是不可变的?意思float是在类的顶部,是它自己的方法调用。类似于此类示例(即使我的书说的dict是可变的): 可变的东西在类内部具有方法,例如以下类型: 另外,对于最后一个,如果我将这种类型的set传递给它: 不调用该example方法,它返回一个字典。

  • 我想在Python3.4中定义2个类并使用类型提示,但它们之间有一定的依赖性。 这是我的密码 和返回的错误: E0601:在赋值前使用变量'父' 如何提示类的初始化函数的参数的类型? 谢谢