__call__ 方法和可调用对象
定义了__call__方法的对象, 称为”可调用对象”, 即该对象可以像函数一样被调用;
#测试可调用方法__call__
class SalaryAccount:
'''工资计算类'''
def __call__(self,salary):
print("算工资啦...")
yearSalary = salary*12
daySalary = yearSalary//27.5 #国家规定的每个月的平均工作天数
hourSalary = daySalary // 8
return dict(yearSalary = yearSalary,daySalary = daySalary,hourSalary=hourSalary)
s = SalaryAccount() #创建对象
# s(3000) #调用的是__call__方法
print(s(5000))
输出:
D:\wwwroot\pyiteam\venv\Scripts\python.exe D:/wwwroot/pyiteam/mypro_obj/mypy02.py
算工资啦...
{'yearSalary': 60000, 'daySalary': 2181.0, 'hourSalary': 272.0}
Process finished with exit code 0