Python:使用 none 时出现意外结果

Python: unexpected result when using none

我认为我理解 none 常量是适应参数缺失的有用工具。但是,我遇到过这种情况不成立的情况,我不明白为什么。

例如:

def boxarea(l,w,h):
    if h is not None: 
        area = l*w*h
    else:
        area = l*w
    return area

def main(): 
    a = boxarea(2,3)
    print(a)

if __name__ == "__main__":
    main() 

return秒:

TypeError: boxarea() missing 1 required positional argument: 'h'

为什么这不只是 return 6?谁能帮忙解释一下?

如果没有作为参数提供,您应该将 h 初始化为 None

def boxarea(l,w,h=None):
    # your code