我在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()的函数正是这样做的,但它已被弃用,因为内联方式通常更干净.
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |