Python中方法的缺省参数问题分析

原创 2017年07月14日 11:40:45

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

测试代码

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的函数支持4种形式的参数:分别是必选参数、 缺省参数、 可变长参数、关键字参数;而且参数的书写顺序也是又一定规定的,顺序如下 def fun(param, default_params,...

继承中虚函数的缺省参数值问题

如果类继承中重新定义了虚函数,那么虚函数中的缺省参数不要重新定义。 用一句话来解释原因就是:虚函数是动态绑定的(dynamically bound),但是缺省参数却是静态绑定的(statically ...

C++ - 虚函数(virtual function)缺省参数的异常表现 及 正确使用方法

虚函数(virtual function)缺省参数的异常表现 及 正确使用方法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/...

关于C++虚函数默认参数的问题。Effective C++ 条款38: 决不要重新定义继承而来的缺省参数值

昨晚在chgaowei的博客上关于讨论C++虚函数的默认参数问题,刚翻书找了一下,在Effective C++ 中的38条有说明。直接上原文吧,最后加几句细点的理解条款38: 决不要重新定义继承而来的...

函数重载与缺省参数.PDF

  • 2012-10-18 18:54
  • 483KB
  • 下载

《C++编程思想》第五章 函数重载与缺省参数 (原书代码+习题+解答)

一.相关知识点         在使用缺省参数时必须记住两条规则。第一,只有参数列表的后部参数才可是缺省的,也就是说,我们不可以在一个缺省参数后面又跟一个非缺省的参数。第二,一旦我们开始使用缺省参数,...

条款37:绝不重新定义继承而来的缺省参数

先上代码: class Base { public: virtual int getVal(int i = 0) { cout<<"基类函数"<<endl; return i...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)