为了账号安全,请及时绑定邮箱和手机立即绑定

Python:创建具有两个以上可选参数的对象

Python:创建具有两个以上可选参数的对象

慕森卡 2023-12-20 16:13:16
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


查看完整回答
反对 回复 2023-12-20
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

要定义带有可选参数的类,您应该为这些参数指定初始值,初始值可以是无、整数、字符串或任何您想要的值,这样如果您想从该类初始化一个实例而不为这些参数指定值从父对象获取值 确保对参数进行排序 位置参数排在第一位

查看完整回答
反对 回复 2023-12-20
  • 2 回答
  • 0 关注
  • 53 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信