在函数中传递等于“None”的关键字作为参数有什么意义?

Lum*_*ria 5 python null keyword nonetype

我正在尝试将Python Voronoi 生成器转换为 Java,但我对关键字参数不太熟悉,并且对作为函数参数编写的关键字参数感到困惑。

我读过这个问题,但它只涉及调用参数,而不是定义它们。

看起来该功能只是设置ab“无”。我不明白为什么这是必要的。为什么不直接输入None而不是使用这样的参数呢?

在函数定义中使用等于 None 的关键字参数有什么意义?

功能:

class Arc:
    p = None
    pprev = None
    pnext = None
    e = None
    s0 = None
    s1 = None

    def __init__(self, p, a=None, b=None):
        self.p = p
        self.pprev = a
        self.pnext = b
        self.e = None
        self.s0 = None
        self.s1 = None
Run Code Online (Sandbox Code Playgroud)

Pri*_*usa 7

关键字参数可以有默认值。a在这种情况下,和 的b默认值为None。这意味着当这些参数未传递到函数中ab设置为None.

例子:

def func(a=None):
    print(a)
func()
>>>None
Run Code Online (Sandbox Code Playgroud)

但如果你这样做:

def func(a):
    print(a)
func()
>>>TypeError: func() missing 1 required positional argument: 'a'
Run Code Online (Sandbox Code Playgroud)