【发布时间】:2021-10-11 17:48:13
【问题描述】:
我正在阅读关于类的一章,但我无法理解哪些参数应包含在哪些方法中。例如在这段代码中:
class Employee:
'''A simple class to describe an employee.'''
def __init__(self, first_name, last_name, salary, sal_raise=5000):
'''Initialize first name, last name, salary, and maybe raise?'''
self.first_name = first_name
self.last_name = last_name
self.salary = salary
self.sal_raise = sal_raise
def give_raise(self):
self.salary += self.sal_raise
print(f'''You've given {self.first_name} a ${self.sal_raise} raise!''')
sal_raise 当前是__init__() 方法中的一个参数。这是唯一的方法吗?是否可以在 give_raise 方法中初始化 sal_raise ?像这样的:
def give_raise(self):
self.sal_raise = 5000
self.salary += self.sal_raise
【问题讨论】:
-
是的,虽然
self.salary += 5000更简洁,但这绝对没问题。或者将其添加为give_raise方法的默认参数。 -
将加薪金额作为
give_raise()的参数可能更有意义,这样您就不会被员工的单次加薪金额所困扰。 -
这很好,除了如果你按照 Marcin 的建议去做,那么当你想加薪时,你的 Employee 对象的
sal_raise属性将始终为 5000。换句话说,每次你想give_raise(),加薪总是5000。换一种方式或按照@jasonharper的建议做至少可以让你改变加薪金额。
标签: python class oop python-class