我最熟悉Java,并且正在学习Python。我一直在用Python玩OOP,对如何跟踪数据类型有些困惑。我感到困惑的是下图中的get_average_grade()函数。在for循环中,Python如何知道Student是Student类型的对象?注意:列表self.students被分配为类'init。
中的空列表。Python变量实际上没有数据类型。 Python变量只是对象的引用(或指针)的简单符号名。该对象具有一个值(例如23或“ cat”)和一个类型(例如str或int或Student)。名称可以与int一秒钟关联,而与Student一秒钟关联。
您可以在any变量上调用get_grade()
。如果该变量没有get_grade()
方法,则结果为AttributeError异常。
所有Python程序员都应该阅读的有用背景:
Python很聪明,可以在分配变量时知道变量的类型。检查一下。
student = 'Hi Mom!'
print (student)
student = 7
print (student)
student = [1, 2, 3]
print (student)
任何时候'学生'都可以是字符串,整数,列表,字典等,等等...