python,没有方法重载,howto?

sur*_*esh 3 python overloading

我想编写一个名为size()的函数,它接受文件名或文件名列表,并分别返回文件的大小或大小的总和.如何在没有python中没有的函数重载的情况下执行此操作?

谢谢

苏雷什

Håv*_*ard 5

def size(*files):
    for file in files:
        print file
Run Code Online (Sandbox Code Playgroud)

*files是一个特殊的参数类型,它将所有参数都捕获到列表中.因此,如果你这样打电话size:

size("file1.txt", "file2.xml")
Run Code Online (Sandbox Code Playgroud)

files将是一个包含file1.txt和的列表file2.xml.如果仅使用一个参数调用它,它仍将放在列表中.

要使用文件列表调用函数,请使用相同的运算符,但在调用函数时使用:

file_list = ["file1.txt", "file2.xml"]
size(*file_list)
Run Code Online (Sandbox Code Playgroud)

  • 为了清楚起见,这个答案中提供的代码是一个很好的设计,我建议@suresh使用它. (3认同)
  • @gahooa,此方法允许您发送单个参数和参数列表.你的观点是什么? (2认同)