2024-09-30 20:31:20 发布
网友
我有很多函数,如果我有一个数组[echo, "Bob is Good"],我想用整个数组的参数运行echo函数。因此它接受arr[0]并使用整个数组的参数运行该函数。现在我只有if语句,例如:
[echo, "Bob is Good"]
arr[0]
... elif arr[0] == 'echo': echo(arr) elif arr[0] == 'var': var(arr)
另外,现在我最好用cmd前缀设置我的函数。例如,echo函数将被称为echocmd,因此,如果有一种方法来实现它,它将是伟大的!你知道吗
显而易见的方式。你知道吗
funcdict = { 'echo': echocmd, 'var': varcmd, ... } ... funcdict.get(arr[0], invalidcmd)(arr)
两种方式:
传递一个代表值,即与要运行的函数对应的字符串或整数。使用字典将该值索引到实际函数。
传递对实际函数的引用,并使用该引用调用它。
第二个更一般-你可以编任何你喜欢的函数并传递它。第一个可以让你“沙盒”你的解释器,限制什么功能是允许的,也可能更容易存储在外部。你知道吗
您可以将函数直接存储在列表中(它们不是数组;在Python中,这意味着一些不同的东西):
def echocmd(foo, bar, baz): print foo, bar, baz # for testing my_data = [echocmd, 'spam', 'and', 'eggs'] my_data[0](*my_data[1:])
显而易见的方式。你知道吗
两种方式:
传递一个代表值,即与要运行的函数对应的字符串或整数。使用字典将该值索引到实际函数。
传递对实际函数的引用,并使用该引用调用它。
第二个更一般-你可以编任何你喜欢的函数并传递它。第一个可以让你“沙盒”你的解释器,限制什么功能是允许的,也可能更容易存储在外部。你知道吗
您可以将函数直接存储在列表中(它们不是数组;在Python中,这意味着一些不同的东西):
相关问题 更多 >
编程相关推荐