How to check arguments passed to the function call are empty?

Issue

I want the function to simply check if an argument is passed or not. If not, print something, else say some hello and that argument.

Here is sample of my code:

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

run code:

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

I have tried using None, Kwargs and still not working. How can I check whether argument is passed to the function?

Solution

To make a parameter optional assign it a default value:

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

Addendum: As Barmar pointed out in the comments to your question, your function needs to return a string to make your check work.

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

Answered By – Ansgar Wiechers

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published