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

作者:bladestone 时间:2022-10-07 17:00:45 

Python 中方法的缺省参数问题

在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 缺省参数 不定长参数

python 缺省参数

# 缺省参数
# 1. 在定义函数的时候,给我们形参一个默认的数据,那这个形参就是缺省参数
# 2. 调用的时候,给缺省参传递参数默认值,使用的是传递的值
# 3. 在调用的时候,可以不传递数据值,那么使用的为默认值

def show_info(name="我家小丁永远",age= 18)
     print(name,age)
# 如果不给缺省参数赋值,那么输出的值就为"我家小丁永远 18"

show_info()
# 如果给缺省参数赋值,那么输入的结果为你所赋的值
show_info("我今年马上",20)

不定长参数

# 不定长参数  (*args   *kwargs)
#  *args  ,args可以写成其他变量如:a, b, c.但是建议使用args 
# *args是元祖类型(a, b, c), 最直接的特点就是: 可以使用 for in 遍历
# *args 不定长参数,可以接受位置传参

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("天天向上")

来源:https://blade.blog.csdn.net/article/details/75103335

标签:Python,方法,缺省参数
0
投稿

猜你喜欢

  • laravel执行php artisan migrate报错的解决方法

    2024-06-05 09:44:39
  • Go语言sync包与锁实现限制线程对变量的访问

    2024-02-21 13:52:29
  • python自动化测试通过日志3分钟定位bug

    2021-09-12 10:11:19
  • 计算Python Numpy向量之间的欧氏距离实例

    2022-08-14 08:21:56
  • 手把手教你搭建一个vue项目的完整步骤

    2023-07-02 17:05:48
  • python如何为创建大量实例节省内存

    2023-03-19 06:35:37
  • 详解Python Qt的窗体开发的基本操作

    2021-03-28 00:58:12
  • go语言beego框架分页器操作及接口频率限制示例

    2024-04-25 15:15:13
  • Flask框架Flask-Login用法分析

    2022-05-20 08:21:27
  • pytorch K折交叉验证过程说明及实现方式

    2021-01-11 16:05:08
  • Python反爬虫技术之防止IP地址被封杀的讲解

    2022-05-09 10:44:12
  • asp利用XMLHTTP无刷新自动更新数据

    2007-08-23 13:16:00
  • Python中requests做接口测试的方法

    2022-04-10 11:06:18
  • Python函数装饰器的使用教程

    2022-10-26 03:01:06
  • 关于IDEA git 只有Commit没有Push的问题

    2023-07-20 02:26:58
  • SQL+HTML+PHP 一个简单论坛网站的综合开发案例(注册、登录、注销、修改信息、留言等)

    2023-06-14 15:54:17
  • mysql 5.7.15版本安装配置方法图文教程

    2024-01-14 17:08:09
  • MySQL一个语句查出各种整形占用字节数及最大最小值的实例

    2024-01-25 11:30:43
  • Oracle 数据库操作技巧集

    2010-07-26 12:49:00
  • SQL Server误区30日谈 第29天 有关堆碎片的误区

    2024-01-20 06:20:06
  • asp之家 网络编程 m.aspxhome.com