class Disease: def __init__(self, category, name, nicknames, sx, *labs, **inheritance): self.category = category self.name = name self.nicknames = nicknames self.sx = sx self.labs = labs #incl. vitals self.inheritance = inheritance def printLabs(self): for item in self.labs: print(item)这工作正常,但是当我尝试使用三个可选值或中间的可选值(即昵称)初始化疾病时,它不起作用。有什么办法可以解决这些问题吗?
2 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
要使某个值有时可选,您必须从*labs
或中提取它**inheritance
,或者提供一个默认值,例如:
class Disease: def __init__(self, category, name, nicknames=None, sx=None, *labs, **inheritance):
现在,如果用户不提供昵称或 sx 的值,它们将保持为“无”。
注意:像这样的可选(默认)参数必须位于函数声明的末尾 - 这意味着您不能执行类似的操作,def __init__(self, category, name=None, nicknames, sx, *labs, **inheritance)
因为 after name
,所有参数都必须具有默认值,否则您将得到 aa SyntaxError
。
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
要定义带有可选参数的类,您应该为这些参数指定初始值,初始值可以是无、整数、字符串或任何您想要的值,这样如果您想从该类初始化一个实例而不为这些参数指定值从父对象获取值 确保对参数进行排序 位置参数排在第一位
添加回答
举报
0/150
提交
取消