Python 检查输入函数的参数类型
所以我想创建一个函数,并根据传入的参数类型使其执行不同的操作。具体地说,我希望它在输入字符串时做一件事,在输入列表时做其他事情。这在Python中可能吗?如果是这样的话,我该怎么做呢 目前,我已经尝试使用isinstance(),但它似乎没有击中我的任何if语句:Python 检查输入函数的参数类型,python,Python,所以我想创建一个函数,并根据传入的参数类型使其执行不同的操作。具体地说,我希望它在输入字符串时做一件事,在输入列表时做其他事情。这在Python中可能吗?如果是这样的话,我该怎么做呢 目前,我已经尝试使用isinstance(),但它似乎没有击中我的任何if语句: def tester(*args): if (isinstance(args, str)): return "String" elif (isinstance(args, list)):
def tester(*args):
if (isinstance(args, str)):
return "String"
elif (isinstance(args, list)):
return"List"
else:
return "You dun goofed"
编辑:用户一次只能传递一个参数,可以是列表或字符串。
*args
是传递给参数的参数的元组。splat(*
)操作符解压函数调用中给定的参数
>>> def tester(*args):
print args
print type(args)
>>> tester(1, 'a')
(1, 'a')
<type 'tuple'>
*args
是传递给参数的参数的元组。splat(*
)操作符解压函数调用中给定的参数
>>> def tester(*args):
print args
print type(args)
>>> tester(1, 'a')
(1, 'a')
<type 'tuple'>
看起来您只需要向函数传递一个参数。在这种情况下,请删除“*”,因为它始终被视为参数的元组。它是可变长度参数,在您不确定函数需要的参数数量时使用
def tester(args):
if (isinstance(args, str)):
return "String"
elif (isinstance(args, list)):
return"List"
else:
return "You dun goofed"
如果您的函数实际上需要可变长度参数,并且您希望检查传递的第一个参数是字符串还是列表,则可以执行以下操作:
def tester(*args):
if (isinstance(args[0], str)):
return "String"
elif (isinstance(args[0], list)):
return"List"
else:
return "You dun goofed"
看起来您只需要向函数传递一个参数。在这种情况下,请删除“*”,因为它始终被视为参数的元组。它是可变长度参数,在您不确定函数需要的参数数量时使用
def tester(args):
if (isinstance(args, str)):
return "String"
elif (isinstance(args, list)):
return"List"
else:
return "You dun goofed"
如果您的函数实际上需要可变长度参数,并且您希望检查传递的第一个参数是字符串还是列表,则可以执行以下操作:
def tester(*args):
if (isinstance(args[0], str)):
return "String"
elif (isinstance(args[0], list)):
return"List"
else:
return "You dun goofed"
*args
将始终返回一个元组。啊,谢谢,还有其他方法可以执行我尝试执行的操作吗?函数将接受一个参数吗?或者用户可以输入更多?Python中不需要if/elif条件周围的括号,因此有些不典型。else分支应该引发TypeError异常,而不是为调用方返回难以识别的特殊值。*args
将始终返回一个元组。啊,谢谢,有没有其他方法来执行我尝试执行的操作?函数是否将接受一个参数?或者用户可以输入更多?Python中不需要if/elif条件周围的括号,因此有些不典型。else分支应该引发TypeError异常,而不是为调用者返回难以识别的特殊值。这帮助我更好地理解事情,非常感谢:)这帮助我更好地理解事情,非常感谢:)