在我观看 Python OOP 的教程中,他们使用了一个方法而不是将它放在 __init__
下,我想知道当我可以将它放在 {{1} 下时创建方法有什么区别}}。
__init__
那是他们使用的代码,我使用下面的代码完全正常。
class Employee:
def __init__(self, firstname, lastname):
self.firstname = firstname
self.lastname = lastname
def fullname(self):
return f'{self.firstname} {self.lastname}'
答案 0 :(得分:3)
这是一个设计决定。将某物作为变量保留意味着只要对象存在就保留它。将其定义为函数将在运行时计算其值。
由于 fullname
是可以在运行时轻松计算的东西,并且是从已经存在的变量 firstname
和 lastname
派生的,因此它有些多余,这就是为什么他们建议将其设计为一个函数而不是一个变量。
您可能希望将其存储为变量的一种情况是,如果该值被非常频繁地使用或在运行时计算的计算成本很高,那么您将存储一次并重新使用它。
但由于这是一个设计决定,它因情况而异。