为什么我应该使用方法而不是使用 __init__()?

时间:2021-01-03 06:11:44

标签: python python-3.x class oop

在我观看 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}'

1 个答案:

答案 0 :(得分:3)

这是一个设计决定。将某物作为变量保留意味着只要对象存在就保留它。将其定义为函数将在运行时计算其值。

由于 fullname 是可以在运行时轻松计算的东西,并且是从已经存在的变量 firstnamelastname 派生的,因此它有些多余,这就是为什么他们建议将其设计为一个函数而不是一个变量。

您可能希望将其存储为变量的一种情况是,如果该值被非常频繁地使用或在运行时计算的计算成本很高,那么您将存储一次并重新使用它。

但由于这是一个设计决定,它因情况而异。

相关问题