 <p>I'd avoid it. My biggest issue with it is that sometimes you're returning a list, and sometimes you're returning an object. I'd make it work on a list <em>or</em> an object, and then have the user deal with either wrapping the object, of calling the function in a list comprehension.<br> If you really do need to have it work on both I think you're better off using:</p> <pre><code>def func(obj): if not isinstance(obj, list): obj = [obj] # continue </code></pre> <p>That way you're always returning a list.</p>