在Python对象及内存管理机制中介绍了python中的参数传递属于对象的引用传递(pass by object reference),在编写函数的时候需要特别注意 。
先来看个例子:
执行结果:
l1 和 l2指向相同的地址,由于列表可变,l1改变时,l2也跟着变了 。
接着看下面的例子:
结果:
l1没有变化!为什么不是[1, 2, 3, 4]呢?
l = l + [4]表示创建一个“末尾加入元素 4“的新列表 , 并让 l 指向这个新的对象,l1没有进行任何操作 , 因此 l1 的值不变 。如果要改变l1的值,需要加一个返回值:
结果:
下面的代码执行结果又是什么呢?
执行结果:
和第一个例子一样,l1 和 l2指向相同的地址,所以会一起改变 。这个问题怎么解决呢?
可以使用下面的方式:
也可以使用浅拷贝或者深度拷贝,具体使用方法可参考Python对象及内存管理机制 。这个问题在Python编程时需要特别注意 。
本文主要介绍了python函数的几种参数类型:必选参数、可选参数、可变参数、位置参数、强制位置参数、关键字参数、强制关键字参数,注意他们不是完全独立的 , 比如必选参数、可选参数也可以是关键字参数 , 位置参数可以是必选参数或者可选参数 。
另外,python中的参数传递属于对象的引用传递,在对可变数据类型进行参数传递时需要特别注意,如有必要,使用python的拷贝方法 。
参考文档:
--THE END--
python中的有参函数的介绍就聊到这里吧 , 感谢你花时间阅读本站内容 , 更多关于python函数、python中的有参函数的信息别忘了在本站进行查找喔 。
推荐阅读
- 手机无人直播录音,手机直播录音神器
- 抖音如何开直播游戏推广,抖音如何开直播游戏推广赚钱
- ndsl经营游戏,nds经典游戏合集
- 趣播直播伴侣,趣播直播安全吗
- php商品列表缓存数据 php数据缓存技术
- thinkpad怎么切换显卡,thinkpad如何切换显卡
- 重庆软件开发驻场代理招聘,重庆开发软件的公司
- 快手直播画面不显示了,手机快手的直播不显示画面
- i云宝如何获取推广费,i云保怎么推广