【问题标题】:How does python keep track of variable data types?python如何跟踪可变数据类型?
【发布时间】:2020-05-19 22:36:08
【问题描述】:

我主要熟悉 Java,并且正在学习 Python。我一直在使用 Python 中的 OOP,并且对它如何跟踪数据类型感到有些困惑。我感到困惑的是下图中的 get_average_grade() 函数。在 for 循环中,Python 如何知道 student 是 Student 类型的对象?注意:列表 self.students 被分配为班级 init 中的一个空列表。

Image related to question

【问题讨论】:

  • 请在问题中包含任何代码作为文本,而不是图像。
  • 不清楚你在问什么。 Python 是一种动态类型语言,对象的 type 是在运行时确定的,因此像 Java 这样的静态类型语言中的很多东西都不会直接翻译。你在问什么究竟
  • Python 不需要知道studentStudent 类型的对象。见realpython.com/lessons/duck-typing
  • 理解这一点很重要,在 Python 中,变量没有数据类型。它们可以引用任何类型的对象

标签: python


【解决方案1】:

Python 变量实际上没有数据类型。 Python 变量只是对象引用(或指针)的符号名称。该对象有一个值(例如 23 或“cat”)和一个类型(例如 strintStudent)。名称可以在前一秒与 int 关联,下一秒与 Student 关联。

您可以在任何变量上调用get_grade()。如果该变量没有 get_grade() 方法,则结果是 AttributeError 异常。

所有 Python 程序员都应该阅读的一些有用的背景知识:

【讨论】:

    【解决方案2】:

    Python 足够聪明,可以在分配变量时知道您希望变量是什么类型。看看这个。

    student = 'Hi Mom!'
    print (student)
    
    student = 7
    print (student)
    
    student = [1, 2, 3]
    print (student)
    

    任何时候'student'都可以是字符串、整数、列表、字典等等……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-24
      • 2020-07-21
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      • 2021-09-16
      • 2017-10-27
      相关资源
      最近更新 更多