希望标题不要太混乱。我一直在开发这个程序,我已经创建了一个带有默认列表的so attribute。问题是,当我创建这个对象时,我不知道如何修改这个列表。多谢各位
def __init__(self,nm,pm,adss):
self._nom = nm
self._prenom = pm
self._adresse = adss
self._bonus = [0,0,0,0]```
employer1 = Employe("nom","prenom","adresse",[0,250,50,10] #For exemple I wanted to set
#the list for that one. But im not sure if I can do it like that or if I might need to create a new function for it.
您可以为
bonus
参数提供一个不可变的默认值,然后根据是否传递了值分配给self._bonus
制作作为参数传递给对象的可变参数的副本通常是一种好的做法
这回答了问题的原因:
[]
)作为函数/方法调用的默认参数。这就是大家谈论的不可变默认值bug李>bonus
参数的默认值设置为None
,然后执行检查以查看是否传递了不同的值是一种方法李>bonus
参数值的最干净的方法李>当前版本不起作用,因为您没有将该列表作为参数传递给初始化函数。您的
__init__
函数需要如下所示:然后初始化器知道它应该期望第四个参数应用于
_bonus
属性请注意,这将仅在创建对象时设置属性。要更改对象创建后,应创建setter函数
从你的问题来看,我不确定你是否想要一个默认的奖金标准。如果是这样的话,请参阅对您的问题的评论,以了解有关如何做到这一点的详细信息
相关问题 更多 >
编程相关推荐