Python 如何检查*args[0]是否存在?

Python 如何检查*args[0]是否存在?,python,args,keyword-argument,Python,Args,Keyword Argument,在Python中,如何检查*args[0]是否存在 def my_fxn(self, *args): print(args[0]) my_fxn('ABC') # this prints 'ABC' my_fxn() # this crashes with "IndexError: tuple index out of range" 只需确保args存在并且长度为1或更多。如果要查找args[1]…args[n],则同样的逻辑也适用 def my_fxn(self, *

在Python中,如何检查*args[0]是否存在

def my_fxn(self, *args):
    print(args[0])

my_fxn('ABC')  # this prints 'ABC'
my_fxn()       # this crashes with "IndexError: tuple index out of range"

只需确保args存在并且长度为1或更多。如果要查找args[1]…args[n],则同样的逻辑也适用

def my_fxn(self, *args):
    if args and len(args) > 0:
        print(args[0])
编辑:


根据Willem的评论,如果您正在查找
args[0]
则不需要
len(args)>0
如果您使用
*args
*args
将是一个元组(包含零个、一个或多个元素)。如果元组至少包含一个元素,则元组的真实性为
True
。所以你可以简单地写:

def my_fxn(self, *args):
    if args:
        print(args[0])
def my_fxn(self,*args):
如果参数为:
打印(args[0])
另一个选项是:

def my_fxn(self, *args):
    arg0 = args and args[0] or False

不知道人们是如何看待这种类型的重载的,args和args[0]中的第二个参数就是返回的参数。否则设置为false。

您可以删除
len(args)>0
。如果集合至少有一个元素,则集合的真实性为真。这不只是计算为真或假吗?