Python 检查输入函数的参数类型

Python 检查输入函数的参数类型,python,Python,所以我想创建一个函数,并根据传入的参数类型使其执行不同的操作。具体地说,我希望它在输入字符串时做一件事,在输入列表时做其他事情。这在Python中可能吗?如果是这样的话,我该怎么做呢 目前,我已经尝试使用isinstance(),但它似乎没有击中我的任何if语句: def tester(*args): if (isinstance(args, str)): return "String" elif (isinstance(args, list)):

所以我想创建一个函数,并根据传入的参数类型使其执行不同的操作。具体地说,我希望它在输入字符串时做一件事,在输入列表时做其他事情。这在Python中可能吗?如果是这样的话,我该怎么做呢

目前,我已经尝试使用isinstance(),但它似乎没有击中我的任何if语句:

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异常,而不是为调用者返回难以识别的特殊值。这帮助我更好地理解事情,非常感谢:)这帮助我更好地理解事情,非常感谢:)