[英]Call function for paired arguments
Here is simple script to generate greeting messages: 这是生成问候消息的简单脚本:
def greeting(event, person):
print("Happy " + event + ", dear " + person + ".")
event = "Birthday"
person = "Emily"
greeting(event, person) # Happy Birtday, dear Emily.
event = "New Year"
person = "Mark"
greeting(event, person) # Happy New Year, dear Mark.
Is there way to get the same result, but call the greeting
function only once? 有没有办法获得相同的结果,但是只调用一次greeting
函数?
You can put this in a loop to handle a list of names and events. 您可以将其放在循环中以处理名称和事件的列表。 I'd recommend keeping the inner function the same, and firing a sequence of data at it from outside. 我建议保持内部函数不变,并从外部向其触发一系列数据。 Depending on your application, mileage may vary. 根据您的应用,里程可能会有所不同。
def greeting(event, person):
print("Happy " + event + ", dear " + person + ".")
event_list = [("Birthday", "Emily"),
("New Year", "Mark")]
for event, person in event_list:
greeting(event, person)
If you just want to the function to loop over the inputs, this should work: 如果只想让函数循环输入,这应该可以工作:
def greeting(messages):
for event, person in messages:
print("Happy " + event + ", dear " + person + ".")
greeting([('Birthday', 'Emily'), ('New Year', 'Mark')])
If you can modify greeting: 如果可以修改问候语:
def greeting(info_pairs):
for event, person in info_pairs:
print("Happy " + event + ", dear " + person + ".")
greeting([("Birthday", "Emily"), ("New Year", "Mark")])
Either of the options mentioned by other users will work. 其他用户提到的任何一个选项都可以使用。 It depends on whether you want to put the loop in the function or outside of it: 这取决于您要将循环放在函数中还是在函数外部:
def greeting(event, person):
print("Happy " + event + ", dear " + person + ".")
for event, person in [("Birthday", "Emily"),
("New Year", "Mark")]:
greeting(event, person)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.