【发布时间】:2020-09-13 22:53:39
【问题描述】:
希望标题不要太混乱。我一直在研究程序,并且创建了带有默认列表的属性。问题是当我创建这个对象时,我不知道如何修改该列表。谢谢你
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作为参数吗?如果是这样,那么您可以像对待所有其他参数一样对待它。 -
如果你想在
[0,0,0,0]上设置一个默认值,在某些情况下你可以覆盖它,你也可以这样做,但它有一个常见的问题 - 请参阅 docs.python-guide.org/writing/gotchas/… -
刚刚将
bonus预定义为def __init__(self,nm,pm,adss, bonus=[0,0,0,0]):并将self._bonus = [0,0,0,0]更改为self._bonus = bonus -
@sahasrara62:坏主意。这是一个可变的默认参数错误。
-
如@user2357112supportsMonica 所说,在参数定义中添加
None,如果要将默认值保持为[0,0,0,0],则使用 if 语句, just predefinedbonus` 作为def __init__(self,nm,pm,adss, bonus=None):和将self._bonus = [0,0,0,0]更改为self._bonus = bonus if bonus else [0,0,0,0]
标签: python list class oop object