在python中,你如何在代码中表示必需参数和可选参数?

eug*_*ene 8 python function

特别是当有这么多参数(10+ 20+)时。

强制执行required/optional函数参数的好方法是什么?

有哪些好书可以解决 Python 的这类问题?
(就像 C++ 的有效 C++)

** 编辑 **

我认为def foo(self, arg1, arg2, arg3, .. arg20, .....):在有这么多必需参数的情况下列出是非常不切实际的。

Joh*_*don 9

参数可以是必需的,也可以是可选的,具体取决于它们在函数定义中的显示方式:

def myfunction(p1, p2, p3=False, p4=5)
Run Code Online (Sandbox Code Playgroud)

在此定义中,参数p1p2是必需的。 p3是可选的,False如果调用者未提供,将获取该值。 p4也是可选的,5如果未提供,将获取该值。

如果您确实需要将十个或更多参数传递给函数,最好将它们作为字典传递:

args = {'a': something, 'b': something_else, 'c': 5, 'd': 99.99, ... }
myfunc(args)
Run Code Online (Sandbox Code Playgroud)

  • 不确定我是否同意最后一条评论,如果有多个(变量)args,则将某些内容作为 `dict` 传递,这将使理解代码更加困难且更容易出错。我会使用 `*args` 或 `**kwargs`,然后你可以混合必需和可选。 (2认同)