0

我有一个工资模型,可以处理多家公司员工的工资,或者更确切地说,我会说同一公司的多个工作地点。因此,当我添加工资组件时,我选择了 Expando 模型,因为每个公司可能根据其工资结构具有特定于国家/地区的组件。这些工资组成部分是在运行工资单时计算的。问题是,我可能需要在某个地方显示它,可能在员工资料中。我该怎么做?例如,

A in company ABC India 将拥有

基本:6600

DA : 1250

ABC UK 公司的 B 将拥有

HRA : 1500

特殊津贴:3000

由于这些道具是根据各自的公司在运行时生成的,我该如何访问它们?我不能为英国的员工写薪水.basic。我希望你能理解我的问题。

4

1 回答 1

-1

正如蒂姆建议的那样,您可以通过执行以下操作来测试属性是否存在:

basic_salary = getattr(salary, 'basic', False)

这样,basic_salary 将是basicifsalary具有此属性的值,False否则。

或者,您可以通过以下方式获取实例具有的属性列表:

attributes = salary._properties.keys()

尽管您正在访问本应属于该类的私有部分,但您仍然可以访问它(请注意对可能破坏这种访问的类的更改)。使用此列表,您可以通过以下方式测试是否basicsalary

has_basic = 'basic' in attributes
于 2013-06-20T15:08:01.607 回答