如何检查传递给函数调用的参数是否为空?

新手上路,请多包涵

我希望函数简单地检查是否传递了一个参数。如果没有,打印一些东西,否则打个招呼和那个论点。

这是我的代码示例:

 def say_name(name):
  if name is None:
    print("Hello there")
  else:
    print("Hello, "+ name + "!")

运行代码:

 class Test(unittest.TestCase):
  def test_should_say_hello(self):
    self.assertEqual(say_name("Michael"), "Hello, Michael!")

我已经尝试使用 None ,Kwargs 并且仍然无法正常工作。 如何检查参数是否传递给函数?

原文由 mukolweke 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 607
2 个回答

要使参数可选,请为其分配默认值:

 def say_name(name=None):
    if name is None:
        print("Hello there")
    else:
        print("Hello, "+ name + "!")

附录: 正如 Barmar 在对您的问题的评论中指出的那样,您的函数需要 返回 一个字符串才能使您的检查工作。

 def say_name(name=None):
    if name is None:
        return "Hello there"
    else:
        return "Hello, "+ name + "!"

原文由 Ansgar Wiechers 发布,翻译遵循 CC BY-SA 3.0 许可协议

def say_hello(*名字):

 if name:
  return "Hello, "+name[0]+"!"
else:
  return "Hello there!"

这应该工作

原文由 Ummulkhair Kadri 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题