條件語句比方說,我有一個不接受3個可選參數的函數:的Python:可選功能參數
def function(arg1=0, arg2=0, arg3=0)
什麼是處理功能,這取決於參數傳遞中條件句最徹底的方法?
現在我只有:
def function(arg1=0, arg2=0, arg3=0)
if arg1 !=0 and arg2 !=0 and arg3 != 0:
# do stuff with all three args
elif arg1 !=0 and arg2 != 0:
# do stuff with arg1 and arg2, etc...
爲了擴大在此,如果我的功能,可以採取什麼樣的5個參數?爲所有可能的組合做條件似乎是一種阻力。我可以不做別的檢查哪些參數已經傳遞給函數嗎?
更新: 基於一些反饋,我想我只是在實際解釋我在做什麼。我需要根據他們什麼時候從學校畢業(高中,大學,研究生課程等)來估計某人的年齡。我可以有多個年去了,其實我可以有多個年各高中,大學的,等
所以,一個例子是:
def approx_age(highSchool=0, college=0):
this_year = date.today().year
if (highSchool != 0) and (college != 0):
hs_age = (this_year - highSchool) + 18
college_age = (this_year - college) + 21
age_diff = abs(hs_age - college_age)
if age_diff == 0:
return hs_age
elif return (hs_age + college_age)/2
elif highSchool != 0:
hs_age = (this_year - highSchool) + 18
return hs_age
elif college != 0:
college_age = (this_year - college) + 21
return college_age
事情只打算獲得從這裏更加複雜......
您有所有可能的組合,或參數只是數量條件通過呢? – Marcin 2014-12-02 07:11:33
在大多數情況下,'arg!= 0'等於'if arg',實際上。 – favoretti 2014-12-02 07:12:22
如果第一個'if'子句爲真,則第二個'if'子句將爲真。你想要那個嗎? – Sriram 2014-12-02 07:18:39