当前位置: 首页 > news >正文

上海网站建设公司费用/河北seo技术

上海网站建设公司费用,河北seo技术,wordpress 开发 电商,品牌高端网站制作企业函数的参数到底是传递的一份复制的值,还是对内存的引用? 我们看下面一段代码: a [] def fun(x):x.append(1) fun(a) print(a)想想一下:如果传递的是一份复制的值,那么列表a应该是不会变化的,还是空列表&am…

函数的参数到底是传递的一份复制的值,还是对内存的引用?

我们看下面一段代码:

a = []
def fun(x):x.append(1)
fun(a)
print(a)

  想想一下:如果传递的是一份复制的值,那么列表a应该是不会变化的,还是空列表;如果传递的是引用,那么a应该是[1]。

执行一下看到输出结果是[1],即证明函数参数传递的是引用。

 

但是,再看下面的代码:

a = 1
def fun(x):x = 2return x
ret = fun(a)
print(a)
print(ret)

  如果按照上面的理解,函数参数传递的是引用,那么a的值应该变为2,但是输出却是1,这是为什么?

 

解释:

    python中所有的变量都可以理解是内存中一个对象的“引用”。这里需要记住的是类型是属于对象的,而不是变量。而对象有两种,“可更改”(mutable)与“不可更改”(immutable)对象。在python中,strings, tuples, 和numbers是不可更改的对象而list,dict等则是可以修改的对象。(这就是这个问题的重点)

    当一个引用传递给函数的时候,函数自动复制一份引用,这个函数里的引用和外边的引用没有半毛关系了。所以第二个例子里函数把引用指向了一个不可变对象,当函数返回的时候,外面的引用是不会改变的。而第一个例子就不一样了,函数内的引用指向的是可变对象,对它的操作就和定位了指针地址一样,在内存里进行修改。

 

    不过,有的时候我们确实需要在函数内部修改全局的不可修改的对象,这个时候怎么办呢?

a = 1
def fun(x):global ax = 2a = 'hello'return x
ret = fun(a)
print(a)
print(ret)

  输出:

hello
2

    我们看到通过关键字global,我们将a的值做了修改。但是我们建议尽量减少这种方式的使用,因为我们在函数内部修改了全局变量的值,如果后面还有其他函数使用这个变量的时候可能还认为a的值是1,因此导致出错,而且不易排查。

 

    另:全局变量约定使用大写字母。

转载于:https://www.cnblogs.com/wumingxiaoyao/p/6655414.html

http://www.lbrq.cn/news/929395.html

相关文章:

  • 用阳寿做交易的网站/百度经验怎么赚钱
  • 卖钢材做哪个宣传网站/搜索引擎优化seo是什么
  • 快速搭建网站视频教程/报个电脑培训班要多少钱
  • 主题资源网站建设反思/互联网seo是什么
  • 凡科网站怎么做/百度识图网页版 在线
  • 网站备案依据/百度资源共享链接分享组
  • 中国50强企业管理培训机构/seo优化排名百度教程
  • 做愛视频网站/域名批量查询工具
  • 中国建设网平台/短视频seo
  • com表示商业网站/权重查询爱站网
  • 营销型企业网站建设方案/文章优化软件
  • 手机网站建/产品seo优化
  • 买网站做设计参考属于什么费用/企业推广宣传方式
  • 做网站建设赚钱吗/百度识图搜索
  • 烟草建设网站/网络营销整合营销
  • 网站需要服务器吗?/怎么引流怎么推广自己的产品
  • 兔展/南京seo按天计费
  • 重庆装修公司推荐/进一步优化营商环境
  • html制作手机网站/长沙官网优化公司
  • ASP.NET2.0网站开发全程解析/武汉网络推广
  • 儿童网站建设外文翻译/东莞seo建站哪家好
  • 安徽网站建设外贸/徐州网页关键词优化
  • 信阳做网站推广/怎样做网络推广挣钱
  • 四川住房建设部官方网站/上海平台推广的公司
  • 工厂做网站/提高网站收录的方法
  • 网站建设ppt介绍/外链网站是什么
  • 苏州制作网站的公司/中国法律服务网app最新下载
  • 做全国性的app网站推广多少/零基础学电脑培训班
  • 南通做百度网站的公司网站/电商入门基础知识
  • 小程序制作平台价格/绍兴seo外包
  • Vue 详情模块 1
  • [人工智能-综述-17]:AI革命:重塑职业版图,开启文明新篇
  • 安全月报 | 傲盾DDoS攻击防御2025年7月简报
  • Java实习面试记录
  • lesson28:Python单例模式全解析:从基础实现到企业级最佳实践
  • 国内好用的智能三防手机,适合户外、工业、公共安全等场景