Python参数传递(引用传递和值传递)

参考:https://blog.csdn.net/icessunt/article/details/80919188

python中的函数参数既支持按值调用,也支持按引用调用。

python中的变量是对象引用:

变量存储的值是内存地址。当函数被调用的时候,解释器会查看传入的变量(内存地址)指的那个指的类型,如果是一个可变类型的值,就按照引用传递变量;如果是一个非可变类型的值,就考虑按照值传递变量。

  • 可变类型:字典dict,列表list,集合set
  • 不可变类型:字符串srt,整数int,元组tuple

原文地址:https://www.cnblogs.com/iouwenbo/p/10303266.html

时间: 2024-11-05 18:50:20

Python参数传递(引用传递和值传递)的相关文章

Java Object 引用传递和值传递

Java Object 引用传递和值传递 @author ixenos Java中的引用传递: 除了在将参数传递给方法(或函数)的时候是"值传递",传递对象引用的副本,在任何用"="向引用对象变量赋值的时候都是"引用传递",传递对象的引用给另一个变量. 参数传递,传递引用的副本,这看起来是引用传递,实则是传递了副本,这已经是值传递的概念了: 变量赋值,传递引用,这算引用传递 Java参数传递中没有引用传递都是值传递 1.在 Java 应用程序中永

Java中没有引用传递只有值传递(在函数中)

◆传参的问题 引用类型(在函数调用中)的传参问题,是一个相当扯的问题.有些书上说是传值,有些书上说是传引用.搞得Java程序员都快成神经分裂了.所以,我们最后来谈一下“引用类型参数传递”的问题. 如下例子,假设现在要把刚才创建的那一坨字符串打印出来,我们会使用如下语句: StringBuffer str = new StringBuffer(); System.out.println(str); //这个语句又是什么意思捏?这时候就两说了. 第一种理解:可以认为传进函数的是str这个指针,指针说

Java中是引用传递还是值传递?

前言 在学习Java编程语言过程中最容易让你产生误解的问题之一就是 java是值传递还是引用传递.今天就来围绕这个话题揭开迷雾. 概念 首先先来认识一下什么是值传递什么是引用传递. 值传递: 将方法实际参数值复制到另一个变量,然后复制的对象被传递,这就是为什么它被称为"值传递" 引用传递:将实际参数的引用传递给该方法,这就是为什么它被引用称为"传递"的原因. 例子分析1 问题:如果java是使用引用传递的话,为什么在函数中 变量的交换会没有卵用呢? 答案:java通

关于java中是引用传递还是值传递的问题!!!经常在笔试中遇到,今天终于弄明白了!

关于JAVA中参数传递问题有两种,一种是按值传递(如果是基本类型),另一种是按引用传递(如果是對象).首先以两个例子开始:1)public class Test2 { public static void main (String [] args) { StringBuffer a = new StringBuffer ("A"); StringBuffer b = new StringBuffer ("B"); operate (a,b); System.out.

Java技术_Java千百问(0039)_引用传递和值传递有什么区别

点击进入_更多_Java千百问 1.什么是值传递 值传递,是将内存空间中某个存储单元中存放的值,传送给另一个存储单元.(java中的存储单元并不是物理内存的地址,但具有相关性) 例如: //定义了一个改变参数值的函数 public static void changeValue(int x) { ??x = x *2; } public class TestMain{ //调用该函数 int num = 5; System.out.println(num); changeValue(num);

理解Java中的引用传递和值传递

关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习和分析一下,着急可以先看最后的结论. >>基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型.相应的,变量也有两种类型:基本类型和引用类型.基本类型的变量保存原始值,即它代表的值就是数值本身:而引用类型的变量保存引用值,"引用值"指向内存空间的地

(转载)理解Java中的引用传递和值传递

关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习和分析一下,着急可以先看最后的结论. 1.基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型.相应的,变量也有两种类型:基本类型和引用类型.基本类型的变量保存原始值,即它代表的值就是数值本身:而引用类型的变量保存引用值,"引用值"指向内存空间的地址,代表了某

引用传递与值传递

一.ECMAScript中的数据类型 1.基本数据类型:null.undefined.number.boolean.string 2.引用数据类型:object(obj.[].{}.function.RegExp等),是由一组无序的名值对组成的 3.typeof与instanceof作用: typeof是用来检测这些基本数据类型的: 返回"underfined",表示这个值只是被声明了,却没有给其定义,也可以理解为没有赋值 返回"boolean"表示这个值是布尔值,

一道关于引用传递和值传递的JS题

先看题1 var obj = {name:"a"} function bar(obj) { console.log(obj.name); obj = {name:"b"}; console.log(obj.name) } console.log(bar(obj)) console.log(obj.name) 在chrome控制台执行以下看看,发现依次打印 aba 题2,稍微有点变化 var obj = {name:"a"} function ba

java引用传递和值传递

关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习和分析一下,着急可以先看最后的结论. 1.基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型.相应的,变量也有两种类型:基本类型和引用类型.基本类型的变量保存原始值,即它代表的值就是数值本身:而引用类型的变量保存引用值,"引用值"指向内存空间的地址,代表了某