Tuple passed to function recognised as string
tjreedy at udel.edu
Thu Mar 19 01:09:43 CET 2009
> I have following code:
> def test_func(val):
> print type(val)
> test_func(val=('val1', 'val2'))
> The output is quite different:
> <type 'str'>
> <type 'tuple'>
> Why I have string in the first case?
Because (<any expression>) == <any expression>.
Perhaps you meant ('val1',).
A parenthesized form is an optional expression list enclosed in parentheses:
parenth_form ::= "(" [expression_list] ")"
A parenthesized expression list yields whatever that expression list
yields: if the list contains at least one comma, it yields a tuple;
otherwise, it yields the single expression that makes up the expression
An empty pair of parentheses yields an empty tuple object.
More information about the Python-list