Search code examples
pythoncommand-line-argumentsassert

How to check *args are all strings


What is an efficient way to check that all the arguments passed into a function are instances of str?

def foo(*args):
    assert isinstance(*args, str)
    ...

Would it be to do it in a for loop or is there a better way?


Solution

  • Here you want to be using all()

    def foo(*args):
        assert all(isinstance(a, str) for a in args)
        # ...