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

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)

这工作正常,但是当我尝试使用三个可选值或中间的可选值(即昵称)初始化疾病时,它不起作用。


有什么办法可以解决这些问题吗?


慕森卡
浏览 104回答 2
2回答

月关宝盒

要使某个值有时可选,您必须从*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。

天涯尽头无女友

要定义带有可选参数的类,您应该为这些参数指定初始值,初始值可以是无、整数、字符串或任何您想要的值,这样如果您想从该类初始化一个实例而不为这些参数指定值从父对象获取值 确保对参数进行排序 位置参数排在第一位
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python