gpt4 book ai didi

有很多参数的 Python 函数

转载 作者:太空狗 更新时间:2023-10-29 22:26:34 25 4
gpt4 key购买 nike

我是 Python 和一般高级语言的新手,所以我想知道如果我有一个接受大量参数的函数是否会被看不起,以及如何更好地构建我的代码以防止这种情况发生。

例如,此函数本质上是打印文件中字符串的每个位置。

def scan(fpin,base,string,pNo,print_to_file,dumpfile_path,quiet):

这个函数是从主函数调用的,它基本上是解析命令行参数并将数据传递给扫描函数。我曾想过创建一个包含所有这些参数的类并将其传递给扫描,但该数据只会有一个实例,所以这不是毫无意义吗?

最佳答案

命名参数是您的 friend 。对于具有合理默认值的半可选配置选项,为参数提供默认值,并且仅在非默认情况下传递它们(作为命名参数)。如果有很多参数没有合理的默认值,那么您可能希望在调用该函数时为所有参数命名。

考虑内置函数sorted。它最多需要四个参数。 reverse参数是在cmp之前还是之后?如果我想要默认行为,我应该将什么作为 key 传递?答:见鬼,如果我记得。我调用 sorted(A, reverse=True) 并且它按照我的预期进行。

顺便说一句,如果我有大量的“配置”式参数,我将它们传递到每次扫描调用中,并且只会更改(例如,fpinstring ) 每次,我可能倾向于将所有其他参数放入字典中,然后将其传递给具有 **kwargs 语法的函数。这有点高级。有关详细信息,请参阅手册。 (请注意,这与将函数声明为采用 **kwargs 不同。函数定义是相同的,唯一的区别是调用它的方式。)

关于有很多参数的 Python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21049544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com