首页
学习
活动
专区
圈层
工具
发布

Python学习笔记之函数参数传递 传值还是传引用

在学完Python函数那一章节时,很自然的的就会想到Python中函数传参时传值呢?还是传引用?或者都不是? ...有点奇怪吧,为了弄清楚这个问题,我们先来了解一下Python中变量与对象的关系。 一、变量和对象 我们首先要知道Python中的“变量”与C/C++中“变量”是不同的。...综上所述,在Python中变量只是一个标签,一个标识符,它指向内存中的对象。故变量并没有类型,类型是属于对象的,这也是Python中的变量可以被任何类型赋值的原因。...那么Python中参数传递是传值,还是传引用呢?准确的回答:都不是。之所以不是传值,因为没有产生复制,而且函数拥有与调用者同样的对象。而似乎更像是C++的传引用,但是有时却不能改变实参的值。...所以只能这样说:对于不可变的对象,它看起来像C++中的传值方式;对于可变对象,它看起来像C++中的按引用传递。 参考

2.5K30

传智播客C++学习感悟

所以在15年中旬解散了工作室,前来传智学习。当然,要准备做一个程序员,你要考虑好自己是否能成为一个合格的程序员(入门级)。...,传智填鸭式教学,你只需要记住代码就好了。...楼主刚来传智的时候学校推荐的是福林公寓,楼主去看了看,感觉太挤,八个人或六个人一间寝室,暗无天日,楼主跟女朋友住习惯了。...linux基础&SQL数据库-->王飞   王老师是一个特别负责任的老师,传智那么多老师中,没有几个像他一样,每天下课到七点才走。...听闻过的老师   张孝祥(已逝)   传智创始人,张老师的JAVA教程算是业内最经典的JAVA教程了,没能听张老师现场的课挺遗憾的。

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    自动播放传智播客课程视频

    太麻烦了, 干脆写了个脚本自动帮我切换, 如果有习题就会播放语音提醒 (一点小提示, 可以配合tampermonkey的H5播放器控制来实现16倍速播放, 畅享极致丝滑, 几秒一个视频, 我也是听我朋友说的传智不计观看视频时长..., 如果计视频观看时长给分数的话就GG了, 酌情使用) 使用方法: 在传智播客视频播放页按F12, 将下面的代码粘贴到控制台里面, 回车即可运行 (本项目已在GitHub开源, 如果对你有用的话, 顺路给个...console.log("欢迎使用传智自动播放插件, 作者博客:https://www.nothamor.cn"); setTimeout(function() { let url...// ==UserScript== // @name 传智自动播放视频 // @namespace http://tampermonkey.net/ // @version...0.3 // @description 自动播放传智播客课程视频, 开发者博客:http://www.nothamor.cn // @author nothamor // @match

    2.8K20

    python传参是传值还是传引用

    在此之前先来看看变量和对象的关系:Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是对象。而变量是对象的一个引用(又称为名字或者标签),对象的操作都是通过引用来完成的。...因此,如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象 例2 def test2(p): p = "i in test2" print(p,...因此,如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。 总结: Python参数传递采用的肯定是“传对象引用”的方式。...这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。...如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。

    4.3K150

    python中传值和传地址问题

    在python中,还没有对这个知识点有一个详细的定义,很模糊的说明了,通过下面代码,可以观察出来,什么时候传的是值,什么时候传的是地址 有时候会发现自己的数据发生变化,可能就是这个原因,python的创作者...# 传值和传地址的区别 # 对于简单的数值,采用传值操作,即在函数内对参数的操作不影响外面的变量 # 对于复杂变量,采用传地址操作,此时函数内的参数和外部变量是同一份内容, # 任何地方对此内容的更改都影响另外的变量或参数的使用...print(bn) 结果: [1, 5, 6, 5, 7, 9] [1, 5, 300, 5, 7, 9] [1, 5, 300, 5, 7, 9] 5 105 5 通过结果观察: 对于简单的数值,采用的是传值操作...,即在函数内对参数的操作不影响外面的变量 对于复杂的变量,采用传地址操作,此时函数内的参数和外部变量是同一份内容,任何地方对此内容的更改都会影响另外的变量或参数的使用 小伙伴们,注意啦!

    1.2K20

    学习笔记 | 学会传参,事倍功半

    前言 作为气象领域的Python学习者,我们经常需要处理不同的数据或调整脚本参数。如果每次修改参数都要打开代码文件,既麻烦又容易出错。...通过命令行传参,我们可以直接在运行脚本时输入参数,让代码更灵活、更通用! 下面介绍Python传参的两种方式:初级版(sys.argv)和进阶版(argparse)。...初级传参:sys.argv 的魔法 为什么用它? sys.argv 可以让我们直接通过命令行输入参数,无需修改代码内部就能适应不同的场景,比如切换气象数据文件路径、调整计算参数等。...(例如 python script.py 降雨量 50),否则会报错 进阶传参:argparse 的优雅之道 为什么升级?...通过传参功能,我们能将代码和数据分离,提升脚本的通用性和复用性。试试用这两种方法改造你的气象分析脚本吧!️ 相信看完这个,你的搬砖能力又level up了

    25110

    Python函数参数传递:传值还是传引用

    按照C++语言的思维,如果Python函数参数的传递是传值的话,结果应该是[0, 1],如果是传引用的话,结果应该是[‘T’, ‘Z’, ‘Y’]。 可是实际结果是:[0, 1, 100]。...所以,Python函数参数的传递既不是所谓的传值也不是传引用。 Python函数参数传递 那么Python中函数参数到底是以什么形式传递的呢?...我们首先明确一些概念:Python中的变量和对象。 Python中的变量是没有类型的,我们可以把它看做一个(*void)类型的指针,变量是可以指向任何对象的,而对象才是有类型的。...而且Python中的对象有不可变对象(number,string,tuple等)和可变对象之分(list,dict等)。...所以最重要的一点是明白:Python中函数参数的传递是变量指向的对象的地址;Python中变量和对象的不同。

    4.3K51
    领券