【发布时间】:2021-02-14 19:13:09
【问题描述】:
我对 Python 很陌生,正在处理 OOP。对于何时使用对方法和类的调用,我有点困惑。下面的示例代码输出平均值,但是我很好奇您何时会从真实世界的角度使用从 Class 调用与方法调用。我很确定这只是我可能尚未解决的问题,但是对于何时使用其中一个而不是另一个有点困惑。
class Student:
def __init__(self, new_name, new_grades):
self.name = new_name
self.grades = new_grades
def average(self):
return sum(self.grades) / len(self.grades)
student_one = Student('Test User', [70, 88, 90, 99])
# object.method()
print(student_one.average())
# Class.method(object)
print(Student.average(student_one))
【问题讨论】:
-
它们在功能上是等效的。严格来说
object.method()是调用object中的绑定方法。class调用使用未绑定的方法,但显式传入对象。如果您要处理实例状态,请始终使用object.method()... 为@classmethod或@staticmethod函数保留class.method()。 -
你会一直使用
student_one.average()
标签: python python-3.x oop