当前位置:  开发笔记 > 编程语言 > 正文

Python,将函数赋值给变量,更改可选参数的值

如何解决《Python,将函数赋值给变量,更改可选参数的值》经验,为你挑选了2个好方法。

是否可以使用修改后的默认参数为变量赋值?

为了使它更具体,我将举一个例子.以下显然不适用于当前形式,仅用于显示我需要的内容:

def power(a, pow=2):
    ret = 1
    for _ in range(pow):
        ret *= a
    return ret

cube = power(pow=3)

结果cube(5)应该是125.



1> alecxe..:

functools.partial 救援:

返回一个新的部分对象,当被调用时,其行为类似于使用位置参数args和关键字参数关键字调用的func.如果为调用提供了更多参数,则将它们附加到args.如果提供了其他关键字参数,则它们会扩展和覆盖关键字.

from functools import partial

cube = partial(power, pow=3)

演示:

>>> from functools import partial
>>> 
>>> def power(a, pow=2):
...     ret = 1
...     for _ in range(pow):
...         ret *= a
...     return ret
... 
>>> cube = partial(power, pow=3)
>>> 
>>> cube(5)
125



2> chthonicdaem..:

答案使用partial很好,使用标准库,但我认为值得一提的是以下方法是等效的:

def cube(a):
   return power(a, pow=3)

即使这看起来不像是因为没有a =,但它做了很多相同的事情(将名称绑定到函数对象).我认为这通常更清晰.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有