我試圖根據正在傳入的參數來改變函數的行爲。我想用if語句,但我真的不想。 例子:替代「如果」根據參數在函數中做不同的事情
def BigPrime(numP, plist = [], x = 1, counter =0):
while len(plist) <= numP:
if x == 1 or x == 2 or x == 5:
plist.append(x)
elif x % 2 is not 0 and int(str(x)[-1]) is not 5:
for div in plist[1:]:
#Non mettere niente qui, strane magie
#accadono in questo luogo...
if x % div == 0:
break
else:
plist.append(x)
counter += 1
x += 1
return plist, counter
編輯:OK,因爲這個例子沒有convice很多,我把真正的功能。對困惑感到抱歉!任何建議是值得歡迎的!
我需要這樣的:
def foo(arg = 0, x = 0):
if not arg:
while True:
pass
else:
while x < arg:
print('bar')
x+=1
這真的看起來可怕, 這真的是唯一的出路?沒有更優雅的工作嗎?
這就是它應該是什麼樣,我把有沒有「通行證」,因爲整個代碼太長寫下來,它不是irrilevant ......我想知道的是,如果有一些事情奇怪的方法或'魔術',可以做的伎倆,而不是一個if語句。 :) – WhiteEyeTree
'foo'和'arg'幾乎不是它的「應該」的樣子:)無論如何,「if/else」在Python中相當習慣,即使是頂級條件,因爲* Python不會擁有對模式匹配或功能衛士*的本機支持。我可能會使用單獨的函數來完成實際的工作,甚至可能使用嵌套函數。當然代碼可以變得像想要的那樣瘋狂。 – user2864740
編輯,現在有真正的功能! :D – WhiteEyeTree