Python中类/函数中的可选参数

Optional argument in class/function in Python

本问题已经有最佳答案,请猛点这里访问。

如果我想将可选参数传递给函数,我想知道在python中是否有一些好的实践可以用来处理案例。

我在课堂上有这个功能:

1
2
3
4
5
def gen(self, arg1, arg2, optional):
    if optional exists do that:
        print(optional)
    else:
        print(arg1, arg2)

我现在能做的就是通过if来处理它,但我不认为这是最好的方法。


如果要将可选参数传递给函数,请考虑usingDocx1〔0〕和**kwargs或只使用默认参数。

例如,使用*args**kwargs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
In [3]: def test(a, b, c, *args, **kwargs):
   ...:     print a, b, b
   ...:     if args:
   ...:         print args # do something, which is optional
   ...:     if kwargs:
   ...:         print kwargs # do something, which is optional
   ...:
   ...:

In [4]: test(1, 2, 3, 4, 5 ,6, 7, name='abc', place='xyz')
1 2 2
(4, 5, 6, 7)
{'place': 'xyz', 'name': 'abc'}

In [5]:

例如,使用默认参数。

1
2
3
def gen(self, arg1, arg2, optional=None):
    if optional:
        # do something