Python:使用时没有意想不到的结果

问题描述:

我以为我理解none作为一个有用的工具来适应缺少参数的常量。但是,我遇到过这种情况,这并不成立,我不明白为什么。Python:使用时没有意想不到的结果

例如:

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?有人可以帮忙解释吗? `高清boxarea(L,W,H =无):`

+5

可选参数必须有默认值提供你应该初始化h至无。 – vaultah

如果没有参数

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

明白了。这一直是这种情况吗?我见过没有初始化为None的旧代码示例。 – trob

+0

我想你可能已经看到它在python2,但我不知道,我只用python3编码。 –