如前所述,函数和方法是一流的对象。您通过在末尾加上一些括号(括号)来 称呼
它们。但是看来您想要更多的动机来解释为什么python甚至允许我们这样做。我们为什么要关心函数是否一流?
有时您不想调用它们,而是想传递对可调用对象本身的引用。
from multiprocessing import Processt = Process(target=my_long_running_function)
如果在上述内容后面加上方括号,它将
my_long_running_function在主线程中运行;几乎没有你想要的!您想
Process引用可调用对象,它将在新进程中运行。
有时您只想指定可调用对象,然后再做其他事情…
def do_something(s): return s[::-1].upper()map(do_something,['hey','what up','yo'])Out[3]: ['YEH', 'PU TAHW', 'OY']
(
map在这种情况下)填写其参数。
也许您只想将一堆可调用对象放入某个集合中,并以动态方式获取您想要的那些。
from operator import *str_ops = {'<':lt,'>':gt,'==':eq} # etcop = str_ops.get(my_operator)if op: result = op(lhs,rhs)以上是将运算符的字符串表示形式映射到其实际动作的一种方法。



