__call__方法和可调用对象
定义了__call__方法的对象,称为“可调用对象”,即该对象可以像函数一样被调用。定义好之后就可以用obj()调用。
【案例】
# __call__()方法使用举例
class SalaryAccount:
"""工资计算类"""
def __call__(self, salary):
year_salary = salary * 12
day_salary = salary / 30
hour_salary = day_salary / 8
return dict(month_salary=salary, year_salary=year_salary, day_salary=day_salary, hour_salary=hour_salary)
s = SalaryAccount()
print(s(5000)) # 注意要先将方法赋给s之后才能用s()调用,直接用SalaryAccount(8000)会报错。
运行结果: