【问题标题】:Python: unexpected result when using nonePython:使用无时出现意外结果
【发布时间】:2017-10-04 02:05:19
【问题描述】:

我以为我将非常量理解为一种有用的工具来适应缺少参数的情况。但是,我遇到过这种情况不成立的情况,我不明白为什么。

例如:

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?有人可以帮忙解释一下吗?

【问题讨论】:

  • 可选参数必须有默认值:def boxarea(l,w,h=None):.

标签: python function if-statement main nonetype


【解决方案1】:

如果未作为参数提供,则应将 h 初始化为 None

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

【讨论】:

  • 知道了。一直都是这样吗?我见过没有初始化为 None 的旧代码示例。
  • 我猜你可以在 python2 中看到它,但我不确定,我只用 python3 编码。
猜你喜欢
  • 2013-11-07
  • 1970-01-01
  • 1970-01-01
  • 2020-10-20
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 2018-07-18
  • 2015-05-30
相关资源
最近更新 更多