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

时间:2017-05-05 14:27:28

标签: python function if-statement main nonetype

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

例如:

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() 

返回:

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

为什么这只是返回6?有人可以帮忙解释一下吗?

1 个答案:

答案 0 :(得分:3)

如果未将h初始化为参数

,则应将h初始化为None
def boxarea(l,w,h=None):
    # your code