开发者

Python中方法的缺省参数问题解读

目录
  • python 中方法的缺javascript省参数问题
    • 测试代码
    • 预期代码分析
  • Python 缺省参数 不定长参数
    • python 缺省参数
    • 不定长参数
  • 总结

    Python 中方法的缺省参数问题

    在Python中可以缺省给方法制定缺省值,但是这个缺省值在某些情况下确是和我们预期不太一致的…..。 这个诡异的问qAzvbuyZZ题,曾经困然了我几天时间,才最终定位出来…..

    测试代码

    from datetime import datetime
    import time
    def test(curdate=datetime.now()):
    print(“The current Time:%s” % curdate.strftime(“%Y-%m-%d %H:%M:%S”))
    
    for i in编程客栈 range(0,10):
    time.sleep(2)
    test()

    预期代码分析

    第一次预计其应该打印出不同的时间戳,因为datetime.now()每次的调用都会生成当前的时间点。 但是实际情况确实和这个不一样的….

    直接上结果:

    Python中方法的缺省参数问题解读

    从输出的结果信息来看,每一次都是输出了相同的时间戳……..

    小结:从结果来看,函数的反复调用中,只会反复使用第一次调用之时生成的那个缺省值,这个是我们在使用方法的缺省值之时需要注意的问题。

    Python 缺省参数 不定长参数

    python 缺省参数

    # 缺省参数
    # 1. 在定义函数的时候,给我们形参一个默认的数据,那这个形参就是缺省参数
    # 2. 调用的时候,给缺省参传递参数默认值,使用的是传递的值
    # 3. 在调用的时候,可以不传递数据值,那么使用的为默认值
    
    def show_info(name="我家小丁永远",age= 18)
      print编程客栈(name,age)
    # 如果不给缺省参数赋值,那么输出的值就为"我家小丁永远 18"
    
    
    show_info()
    # 如果给缺省参数赋值,那么输入的结果为你所赋的值
    show_info("我今年马上",20)

    不定长参数

    # 不定长参数 (*arg开发者_JAVA开发s  *kwargs)
    # *args ,args可以写成其他变量如:a, b, c.但是建议使用args
    # *args是元祖类型(a, b, c), 最直接的特点就是: 可以使用 for in 遍历
    # *args http://www.devze.com不定长参数,可以接受位置传参
    
    def show_info(*args)
      for i in args:
       print(i, "人生苦短,我用python", end=" ")
      print()
    
    show_info(2)
    # 接上 另外一种写法
    def show_info(*args)
     print("人生苦短,我用Python", *args)
    
    show_info("好好学习")
    show_info("天天向上")

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜