我学会了如何将**kwargs
和*args
传入函数,并且它们都能够正常运行,像下面这样:
def market_prices(name, **kwargs):
print("Hello! Welcome to "+name+" Market!")
for fruit, price in kwargs.items():
price_list = " {} is NTD {} per piece.".format(fruit,price)
print (price_list)
market_prices('Wellcome',banana=8, apple=10)
然而在实际情况中,我更愿意预定义一个拥有许多键值对的字典,这样在调用函数时就不必键入每个参数。我已经在网上搜索过了,但是找不到一个好的例子或解释:以下是我尝试使用的代码:
fruits:{"apple":10,
"banana":8,
"pineapple":50,
"mango":45
}
def market_prices(name, **fruits):
print("Hello! Welcome to "+name+" Market!")
for fruit, price in fruits.items():
price_list = " {} is NTD {} per piece.".format(fruit,price)
print (price_list)
>>> market_prices('Wellcome ', fruits)
NameError: name 'fruits' is not defined
def market_place(name,**kwargs):
这样的东西,您可以像这样使用market_place('La Cebada',**fruits)
(PS:La Cebada 是马德里历史悠久的市场之一;-)) - Pedro A. Aranda