python中的引用怎么理解_Python函数通过引用调用

基本上有三种'函数调用':通过价值

通过引用传递

通过对象引用传递

Python是一种PASS-BY-OBJECT-REFERENCE编程语言。

首先,重要的是要理解一个变量,变量(对象)的值是两个独立的东西。变量'指向'对象。变量不是对象。再次:

变量不是对象

示例:在以下代码行中:>>> x = []

[]是空列表,x是指向空列表的变量,但x本身不是空列表

将变量(x,在上述情况下)视为一个框,将变量([])的“值”视为框内的对象。

通过对象引用(python中的情况):

这里,“对象引用按值传递”。def append_one(li):

li.append(1)x = [0]append_one(x)print x

这里,语句x = [0]产生一个指向对象[0]的变量x(box)

在被调用的函数上,创建了一个新的li。li的内容是SAME作为box x的内容。两个框都包含相同的对象。也就是说,两个变量都指向内存中的同一个对象。因此,li指向的对象的任何更改也将由x指向的对象反映。

总之,上述计划的产出将是:

[0,1]

注意:

如果在函数中重新分配变量li,则li将指向内存中的单独对象。但是,x将继续指向它之前指向的内存中的同一个对象。

例:def append_one(li):

li = [0, 1]x = [0]append_one(x)print x

该计划的输出将是:

[0]

通过参考:

调用函数的框传递给被调用函数。隐含地,框的内容(变量的值)被传递给被调用的函数。因此,对被调用函数中的框内容的任何更改都将反映在调用函数中。

通过价值:

在被调用函数中创建一个新框,并将来自调用函数的框内容的副本存储到新框中。

希望这可以帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ELF动态库加载技术

库用于将相似函数打包在一个单元中。Linux支持两种类型的库:静态库(在编译时静态绑定到程序)和动态库(在运行时绑定到程序)。Linux系统使用的动态库是ELF格式,后缀名为so。 1 加载 动态库内部划分为段&a…

geoserver安装(war安装+exe安装)

下载 官网:http://geoserver.org/ 方法一 当前只有war版本的 下载结果 tomcat安装最好不要使用exe版本的,因为会出现问题,页面加载不出来,所以大家只需要下载下来解压即可 然后将geoserver安装包中的war文件放到webappx下 然后…

LSGO软件技术团队2015~2016学年第十六周(1214~1220)总结

团队简述: LSGO软件技术团队成立于2010年10月,主要从事的应用方向为互联网与移动互联网(UI设计,前端开发,后台开发),地理信息系统;研究方向为大数据处理与机器学习。成立几年来为学校…

与大家分享一下2010我的找工作历程!真累啊!不过都已经结束了!

经常看到网上别人把找工作的过程与别人分享,这次俺也写下我的一点经历来与大家分享。 大三结束就准备找工作了,因为感觉在学校待着实在没意思,还是出去混混吧。 记得在暑假,想找份实习的,投了些简历,也不知…

LSGO软件技术团队2015~2016学年第十七周(1221~1227)总结

团队简述: LSGO软件技术团队成立于2010年10月,主要从事的应用方向为互联网与移动互联网(UI设计,前端开发,后台开发),地理信息系统;研究方向为大数据处理与机器学习。成立几年来为学校…

postgresql+postgis安装

下载 官网https://www.postgresql.org/ 作者的电脑为win 下载结果为 postgis要选择下载对应版本的 官网http://www.postgis.org/ 以下安装最好装到除c盘之外的,否则有些安装需要权限,一般为d盘 用户名和密码都设置为postgres postgis安装教程 之前设置过…

话说Python:非主流编程语言

【编者按】Python编程语言广受开发者的喜爱,并被列入LAMP (Linux, Apache, MySQL 以及Python/Perl/PHP)中。尽管它在一段时期曾引领了动态语言,但这门颇受好评的编程语言却又从未大红大紫过。是什么让它在开发领域尤其是Web应用开发方面如此受宠呢&#…

把共享库(SO)加载到指定的内存地址

一位朋友最近遇到一个棘手的问题,希望把共享库(SO)加载到指定的内存地址,目的可能是想通过prelink来加快应用程序的起动速度。他问我有没有什么方法。我知道Windows下是可以的,比如在VC6里设置/base的值就行了,所以相信在linux下也…

aop实现原理_SpringAOP原理分析

目录Spring核心知识SpringAOP原理AOP编程技术什么是AOP编程AOP底层实现原理AOP编程使用Spring核心知识Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述…

欧盟无条件批准甲骨文收购Sun

北京时间1月21日消息,据国外媒体报道,甲骨文以70亿美元的价格收购Sun的交易今天获得了欧盟无条件批准。 这笔交易将改变科技产业的格局,这意味着全球第二大商用软件提供商甲骨文进入了硬件产业。在规模达170亿美元的高端计算机服务器市场&…

如何高效的访问内存

影响内存访问速度的因素主要有: 1.内存带宽:每秒读写内存的数据量,由硬件配置决定。 2.CACHE高速缓冲:CPU与内存之间的缓冲器,当命中率比较高时能大大提供内存平均访问速度。 3.TLB转换旁视缓冲:系统虚拟地…

初学者怎样看懂python代码_入门编程(初学者怎样看懂代码)

你既然喜欢编程,就应该认认真真的学习一门语言,学习微软的就先从vb开始,vb是比较好的入门语言,可视化的,比较简单,是非常好的入门语言。书籍最少应该准备两. 先认认真真的学习一门语言,学习微软…

MAVEN安装和配置

maven官网下载 https://maven.apache.org/download.cgi

MIPS架构的医院智能导诊系统设计

摘要:通过研究基于MIPS架构的SMP8654芯片的硬件架构,并且利用芯片内部的图形加速引擎GFX的方式实现了具有高清视频显示和图片文字处理功能的播放器。系统以嵌入式Linux和MiniGUI为平台设计了智能导诊系统,提高了医院的导诊就医的服务效率。智…

C、CPP const 详解

1.const修饰变量一般有两种写法: constTYPE value;TYPE constvalue;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即valu…

arcgis在线地图插件安装

软件下载链接 https://download.csdn.net/download/qq_39397927/15761863

hadoop namenode启动不了_集群版hadoop安装,写给大忙人看的

导语 如果之前的单机版hadoop环境安装满足不了你,集群版hadoop一定合你胃口,轻松入手。目录 集群规划前置条件配置免密登录 3.1 生成密匙 3.2 免密登录 3.3 验证免密登录集群搭建 4.1 下载并解压 4.2 配置环境变量 4.4 修改配置 4.4 分发程序 4.5 初始化…

patch文件制作

一、为单个文件打补丁1、首先我用的ubuntu12 os&#xff0c;cat >>test0<<eof但是这命令执行得是root身份more命令功能&#xff1a;让画面在显示满一页时暂停&#xff0c;此时可按空格健继续显示下一个画面&#xff0c;或按Q键停止显示。more test0:查看test0内容2…

[转]百万级访问网站前期的技术准备

作者&#xff1a;一路凯歌来源&#xff1a;http://zhiyi.us/ 开了自己域名的博客&#xff0c;第一篇就得来个重磅一点的才对得起这4美金的域名。作为一个技术从业者十年&#xff0c;逛了十年发现有些知识东一榔头西一棒槌的得满世界 看个遍才整理出个头绪&#xff0c;那咱就系统…