我有一个薪水模型,可以处理多家公司员工的工资,或者说我会说同一家公司的多个工作地点。因此,当我添加薪资组件时,我选择模型为Expando,因为每个公司可能根据其薪资结构具有国家特定组件。运行工资核算时会计算这些工资组成部分。 问题是,我可能需要在某处显示它,可能在员工档案中。我该怎么做?例如,
公司ABC印度公司将有
基本:6600
DA:1250公司ABC UK的B
HRA:1500
特殊津贴:3000
由于这些道具是根据各自公司生成运行时的,因此如何访问它们?我不能为英国的一名员工写薪水。我希望你理解我的问题。
答案 0 :(得分:-1)
正如Tim建议的那样,您可以通过执行以下操作来测试属性是否存在:
basic_salary = getattr(salary, 'basic', False)
这样,如果basic
具有此属性,则basic_salary将为salary
的值,否则为False
。
或者,您可以通过以下方式获取实例所具有的属性列表:
attributes = salary._properties.keys()
虽然您正在访问本课程的私有部分,但您仍然可以访问它(请注意可能会破坏此类访问的类更改)。使用此列表,您可以通过以下方式测试basic
是否在salary
中
has_basic = 'basic' in attributes