博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 函数的默认参数
阅读量:6343 次
发布时间:2019-06-22

本文共 650 字,大约阅读时间需要 2 分钟。

hot3.png

直接上代码:

first = 1second = 2def haha(first=first,second=second):#默认值是上面定义的两个变量    print "first: %d"%first    print "second: %d"%secondhaha()first += 5second += 6haha()

输出结果呢?

先不急看结果,可以先假想一下,无非两种结果:

一种是haha这个函数的默认值随first和second这两个变量的改变了,也就是后面依次调用haha得到的是5和6

一种是haha这个函数的默认值没有随first和second这两个变量的改变,也就是后面仍输出1和2

可以自己运行一下试试,结果是上面的第二种,也就是仍输出1和2

也就是说初始化这个函数时,其默认参数是将值传了进来而不是变量的地址(指针?python没有,不过可以通过id这个函数)

是不是所有的类型都是这样呢?

我试了下面一种,其他的请自己尝试:

列表list类型变量做默认参数

l1 = [1,]def haha(l1=l1):    print l1haha()l1.append(2)haha()l1 = [3,]#注意重新赋值和上面的区别haha()

详情可以参节:

附:

对于第一种int类型的默认值,如果想要更改可以使用 标准库functools的partial函数,

详情见

转载于:https://my.oschina.net/chinesezhx/blog/495368

你可能感兴趣的文章
Spring Boot 自动配置之@EnableAutoConfiguration
查看>>
为了学习go我从0开始用beego写了一个简单个人博客(2)登陆管理
查看>>
职业女性:学会减压救自己!
查看>>
OSChina 周一乱弹 —— 这个需求很简单!
查看>>
OSChina 周一乱弹 —— 我当你是朋友,你却……
查看>>
[Android官方API阅读]___<Device Compatibility>
查看>>
如何写出好的产品需求文档(PRD)?
查看>>
Flex Chart
查看>>
Python中实用却不常见的小技巧
查看>>
012# Adempiere系统的贸易流程(一)
查看>>
(一)阅读器客户端开发实战_引言
查看>>
为何禁用MyBatis缓存
查看>>
手机安装 apk 出现“解析包时出现问题”
查看>>
在Android上面如何使用带有心跳检测的Socket
查看>>
Oracle用户被锁定解决方法
查看>>
485总线的概念
查看>>
我的友情链接
查看>>
web前端笔记
查看>>
import 路径
查看>>
使用optimizely做A/B测试
查看>>