有没有办法知道函数中传递了多少个参数?
Is there a way to know how many arguments are passed in a function?
参考上面的问题,有没有办法确定有多少参数传递给函数。
def setup(file1, file2):
reader1 = PyPDF2.PdfFileReader(file1)
reader2 = PyPDF2.PdfFileReader(file2)
我的目标是使功能通用。我的计划是检测传递了多少参数,然后修改函数的行为,例如,如果将三个文件传递给函数,它将创建 3 个读取器。我将使用 for
循环来命名读者并将正确的文件传递给 PdfFileReader()
函数。但是,我只是不知道如何使函数的行为符合我的预期。
您可以改用可变参数:
def setup(*files):
readers = [PyPDF2.PdfFileReader(file) for file in files]
return readers
所以,例如,如果你想用 3 个文件调用它,你可以调用它:
reader1, reader2, reader3 = setup(file1, file2, file3)
使用可变数量的参数语法。例如:
def foo(*args):
print(len(args))
你可以利用*args
。只是喜欢:
def setup(*args):
reader_list = [PyPDF2.PdfFileReader(el) fro el in args]
参考上面的问题,有没有办法确定有多少参数传递给函数。
def setup(file1, file2):
reader1 = PyPDF2.PdfFileReader(file1)
reader2 = PyPDF2.PdfFileReader(file2)
我的目标是使功能通用。我的计划是检测传递了多少参数,然后修改函数的行为,例如,如果将三个文件传递给函数,它将创建 3 个读取器。我将使用 for
循环来命名读者并将正确的文件传递给 PdfFileReader()
函数。但是,我只是不知道如何使函数的行为符合我的预期。
您可以改用可变参数:
def setup(*files):
readers = [PyPDF2.PdfFileReader(file) for file in files]
return readers
所以,例如,如果你想用 3 个文件调用它,你可以调用它:
reader1, reader2, reader3 = setup(file1, file2, file3)
使用可变数量的参数语法。例如:
def foo(*args):
print(len(args))
你可以利用*args
。只是喜欢:
def setup(*args):
reader_list = [PyPDF2.PdfFileReader(el) fro el in args]