我正在写一个人力资源计算程序,每个国家的税收/福利计算有很大的不同,所以我为每个国家都有单独的模块,例如USA_HR_Functions.py
,Japan_HR_Functions.py
,等等(总共有36个)。你知道吗
在每个模块中,我都有一些功能(同名的功能)-工资、税收、福利等
由此,我编写了一个循环,遍历每个员工并检查他们的信息,以确定要使用的计算
employee_1
在日本,因此它将使用Japan_HR_Functions.salary()
、Japan_HR_Functions.tax()
等。
employee_2
在美国,因此它将使用USA_HR_Functions.salary()
、USA_HR_Functions.tax()
等。
我已经把所有的东西都写出来了,如果我一次只写一个国家的话就行了。意味着所有的东西都使用一个模块的函数。我想一次把所有的员工都检查一遍。你知道吗
虽然Jay的建议只适用于一个函数,但我不建议使用它,因为您必须为每个函数(工资、税收等)进行设置。你知道吗
我将使用此设置:
这样,您就可以使用dict中带有
get
函数的字符串遍历所有国家。我做过这样的东西:
希望对你有帮助。你知道吗
OO方法是为employee(和其他业务对象)管理创建(可能是抽象的)类,声明用于计算薪资、税收、福利等的所有方法
然后在每个模块中,定义专门针对该国家(或国家组)的实现类。你知道吗
一旦这样做了,您就可以通过基类对雇员进行循环,OO魔术将选择正确的操作。你知道吗
一个能够创建employee对象的简单实现就是拥有一个由国家名称索引的实现类的映射。你知道吗
根据实际用例的复杂程度,这可能是过度使用或最易维护的方式。。。你知道吗
您可以使用字典将国家映射到函数:
相关问题 更多 >
编程相关推荐