python - 将另一个函数作为可选参数调用是否可以/pythonic?

标签 python

例如,我有一个函数,它对数据执行某些操作,并将名称作为可选参数。如果未提供名称,我想调用另一个参数来创建名称。所以备选方案似乎是

def do_something(data, name=get_name()):
    ...

def do_something(data, name=None):
    if name is None: 
        name=get_name()
    ...

我觉得第一个更好,但我是否遗漏了什么?

最佳答案

这不是一回事。

get_name() 在函数定义处对第一种情况进行评估,对第二种情况进行动态评估。

有些情况下无论如何都不能使用第一个方法,比如使用方法调用的返回值 (self.method())

所以坚持第二个版本。我不知道它是否更像 pythonic,但至少它是一个很好的配方并且有效。

关于python - 将另一个函数作为可选参数调用是否可以/pythonic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42489049/

相关文章:

Python Selenium 自动关注 Instagram

python - 在 docker 容器中使用 uwsgi 和 nginx 设置 Flask 应用程序

python - Pandas 和 matplotlib : Different fonts between showfig and savefig (mac os x backend)

python - 防止在 secret 圣诞老人算法中留下单个名字?

python - 尝试使用 pip 安装 matplotlib 和 numpy 时出现错误

python - Python Lambda打包和部署Bash

python - Python 嵌套字典中的内部值无缘无故地发生变化

python - 如何在部署 lambda 函数之前删除 ptvsd 调试代码

python Pandas : What causes slowdown in different column selection methods?

python - 来自两个 3D 点的欧拉角和旋转矩阵