[英]How to pass named parameters to function after if Statements?
我有一個庫,類似於這個示例代碼:
class PlayBook(object):
def __init__(self, playbook= None, host_list= None, module_path= None,):
print "playbook %s host_list %s module_path %s" % (playbook,host_list,module_path)
我需要選擇命名參數,我將傳遞給函數:如果我嘗試這樣做:
a=1
b=2
c=3
PlayBook(
if a>1:
module_path=a,
playbook=b,
elif b<1:
playbook=b,
else:
host_list=c,
playbook="playbook",
)
我有:
if a>1:
^
SyntaxError: invalid syntax
問題:如何選擇命名參數並將其傳遞給函數?
PS:我知道我可以這樣做:
if a>1:
PlayBook(module_path=a,
playbook=b,)
elif b<1:
PlayBook( playbook=b,)
else:
PlayBook( host_list=c,
playbook="playbook",)
對不起我的英語不好
我將參數收集到dict
並在之后解壓縮 :
if a > 1:
params = dict(module_path=a, playbook=b)
elif b < 1:
params = dict(playbook=b)
else:
params = dict(host_list=c, playbook="playbook")
PlayBook(**params) # ** for keyword arguments
不,你做不到。 將實例化移動到每個子句中。
if a>1:
PlayBook(
module_path=a,
playbook=b,
)
elif b<1:
PlayBook(
playbook=b,
)
else:
PlayBook(
host_list=c,
playbook="playbook",
)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.