花朝朝暮暮开 发表于 2020-1-10 17:38

python同名不同参方法求助

本帖最后由 花朝朝暮暮开 于 2020-1-11 15:51 编辑

from time import sleep
def wait(t, t2, t3):
    print(t, t2, t3)
def wait ( ):
    print('默认等待10S')
    t2 = 10
    for f in range ( 100 ) :
      sleep ( t2 )
      print ( '\r还剩{0}秒'.format (t2-f) , end = '' , flush = True )
    print('升级成功')
def wait ( t ):
    #等待时间,附带进度条显示
    t2 = t / 100
    for f in range ( 100 ) :
      sleep ( t2 )
      print ( '\r还剩{0}秒'.format (t-f) , end = '' , flush = True )

if __name__ == '__main__' :
wait ( 100)
wait ( )
wait ( 100,20,10)

如图,python同名不同参函数;希望一类功能的函数能够一样的名称,工作时依据参数个数来调用对应的方法。
现象:
      不论传参个数是多少,总是会调用最后一个函数
问:
   有什么办法解决

感谢各位大佬,已解决
之前没想到还有能传入列表,哈哈哈哈。不知道如列表的方法
from time import sleep
def wait ( *t ):
    if len(t)==0:
      x = 10
      print('默认等待10秒')
    elif len(t)==1:
      x=t
      print('请等待%d秒'%x)
    else:
      print('请重新输入等待时间')
      return
    for f in range ( x ) :
      sleep ( 1 )
      print ( '\r还剩{0}秒'.format (x-f) , end = '' , flush = True )


MeJY_澶╂櫞 发表于 2020-1-10 17:42

用一个方法就行了,给一个参数并且给初始值

花朝朝暮暮开 发表于 2020-1-10 17:46

MeJY_澶╂櫞 发表于 2020-1-10 17:42
用一个方法就行了,给一个参数并且给初始值

不行的,参数值时动态传入的,不固定哎

VioletKiss 发表于 2020-1-10 17:49

建议传代码,别传图片

518 发表于 2020-1-10 18:01

用二楼说的用最多的参数并且给定初始值可以为None然后根据参数是否为None来判断执行

majia1317 发表于 2020-1-10 18:22

python不定长参数

wuzonghui 发表于 2020-1-10 18:53

用一个不定长参数就搞定了def test(*args):
    nums = len(args)
    if nums == 1:
      print(args)
    if nums == 2:
      print(args)


if __name__ == '__main__':
    test('23e4', 234)

1170 发表于 2020-1-10 19:52

函数最好不要定义为相同名称

skywolf 发表于 2020-1-10 23:16

可以设置默认缺省

花朝朝暮暮开 发表于 2020-1-11 15:52

搞定!!!!!
页: [1]
查看完整版本: python同名不同参方法求助