这是python中缺少的基本功能编程功能吗?

Joe*_*ner 1 python

我在python中有一个类,它允许我保存一个函数(在数据库中)供以后使用.现在我需要在类中有一个方法,允许我在一些参数上调用这个函数.由于我不知道该函数提前有多少个参数,我必须将它们作为列表传递.这是事情崩溃的地方,因为我找不到任何方法来让参数从元组中获取参数.在LISP中,这非常简单,因为对于这个目的,有一个关键字(只有一个字符)'@':

(defmacro (call function arguments)
 `(,function ,@args))
Run Code Online (Sandbox Code Playgroud)

python是否这样做,我只是错过了它?如果没有,有没有人有创造性的解决方案?

Ant*_*sma 12

Python使用*进行参数扩展.如果需要关键字参数,请使用**展开dict.所以你展示的宏将是:

def call(function, args):
    return function(*args)
Run Code Online (Sandbox Code Playgroud)

但通常Pythonic的方式是直接进行内联调用.实际上有一个名为apply()的函数正是这样做的,但它已被弃用,因为内联方式通常更干净.