有没有办法知道一个函数中传递了多少个参数?

时间:2018-10-16 15:41:31

标签: python python-3.x arguments parameter-passing filereader

参考上面的问题,有没有办法确定将多少个参数传递给一个函数。

def setup(file1, file2):
    reader1 = PyPDF2.PdfFileReader(file1)
    reader2 = PyPDF2.PdfFileReader(file2)

我的目标是使该功能通用。我的计划是检测传递了多少个参数,然后修改该函数的行为,例如,如果将三个文件传递给该函数,它将创建3个读取器。我将使用for循环为读者命名,并将正确的文件传递给PdfFileReader()函数。但是,我只是不知道如何使函数的行为像我希望的那样。

3 个答案:

答案 0 :(得分:2)

您可以改用变量参数:

def setup(*files):
    readers = [PyPDF2.PdfFileReader(file) for file in files]
    return readers

因此,例如,如果要使用3个文件来调用它,则可以使用:

reader1, reader2, reader3 = setup(file1, file2, file3)

答案 1 :(得分:1)

您可以使用*args。只是喜欢:

def setup(*args):
    reader_list = [PyPDF2.PdfFileReader(el) fro el in args]

答案 2 :(得分:0)

使用可变数量的参数语法。例如:

def foo(*args):
   print(len(args))