使用__init
__()函数创建类实例时,避免重复的实例的好方法是什么。
这个问题是this issue的结果。
上下文(使用员工类示例):
__init
__(自己,姓名,部门)有更好的方法吗?我知道可以通过__init
__()“传递”并定义一个新方法来创建实例。
预期结果:
>>Adam=employee('marketing')
>>Adam.info()
>>Adam works in marketing.
OR
>>a=employee('Adam','marketing')
>>a=employee('Mary','marketing')
>>Error: employee instance with identifier "a" already exists.
>>Use employee.update() method to modify existing record.
有没有更清洁的方法? (您可能会猜到,我仍在学习python)。 还是写一个显式函数(而不是类方法)来添加新员工的好习惯?
答案 0 :(得分:0)
尝试什么是不可能的,因为在
a=employee('Adam','marketing')
a
不是对象,而是指向对象employee('Adam','marketing')
的变量。
完成时
a=employee('Mary','marketing')
您对python说,a
现在必须不指向对象employee('Adam','marketing')
,而必须指向对象employee('Mary','marketing')
。然后,如果没有更多变量引用对象employee('Adam','marketing')
,则垃圾收集器将销毁它。
您必须考虑在python中所有对象都是对象,而不是仅是用于操纵对象的变量。