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
提交
取消