python的变量传递

python中变量都被视为对象的引用。python函数调用传递参数的时候,不允许程序员选择传值还是传引用,python参数传递采用的都是“传对象引用”的方式。 
    这种方式相当于传值和传引用的结合,如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象;如果函数收到的是一个不可变对象(比如数字、字符串或元组)的引用,就不能直接修改原始对象——相当于“传值”来传递对象。

def Func(x):
    x = 20

a = 10
Func(a)
print(a)
#输出10, 调用Func(a)时,Func内部的x变量指向整型对象10,
#(即为整型对象10的引用)。在Func内部尝试修改一个不可变对象,
#会使得Func内部的x指向一个新的对象20,而外部的变量a仍然指向不可变对象10.

def Func2(x):
    x[0] = 20

a = [1,2,3]
Func2[a]
print(a)
#结果为 [20, 2, 3]。

python一般内部赋值变量的话,都是个引用变量,和c语言的传地址概念差不多。可以通过id(x)来查询x的内存地址。 
    如果 a=b的话,a和b的地址相同;如果只是想拷贝,就要用 a = b[:]

时间: 2024-10-24 23:11:58

python的变量传递的相关文章

python的pymysql中以表名作为变量传递进查询语句中

在我们学习使用pymysql的时候有时需要把表名当做变量传递到sql语句中去执行,然而我们的固定思维模式有时却限制了我们:如:我们知道传递变量可以用占位符%s,后面加上变量就行,在pymysql中也有同样的问题,我们在执行sql语句的时候可以把变量传递进去类似: sql = 'insert into TabName + ' value (%s %s)' cursor.execute(sql, [name,age]) 如果我们的TabName也是变量的话我们就会习惯性的这样加 sql = 'ins

hive的变量传递设置

hive的变量传递设置 今天同事在oozie的workflow中执行一个hive查询,但是直接就报异常:Variable substitution depth too large:40,从网上查询可知,可以确认是由于语句中使用了过多的变量导致,在hive以前的版本中,这个限制是写死的40个,查询Hive的最新的原代码,虽然判断的位置的提示信息已经变化,但是原理一样: ### org.apache.hadoop.hive.ql.parse.VariableSubstitution: public

在activity之间通过静态变量传递数据

在activity之间通过静态变量传递数据 一.简介 主要作用:解决intent不能传递非序列化的对象 评价:简单方便,不过intent方式更加简单和方便 二.具体操作 1.在传输数据的页面弄好数据,传递给接收数据的页面 Obj1 obj=new Obj1("fry",22); Activity01.obj=obj; 2.在接收数据的页面显示数据 输出obj即可 3.具体代码 传输数据的页面 Intent intent=new Intent();//初始化intent intent.s

Windows下python环境变量配置

开始学习python开发时,我们首先要了解python是什么,并且了解python开发的环境以及环境配置,其实很多朋友在对python环境配置(http://www.maiziedu.com/course/python/276-2605/)时会出现各种各样的细节错误,导致浪费很多时间,去解决各种问题.因此,小编在本文中给大家讲讲python环境变量设置的方法. 默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. 1. 

python基础(2):python的变量和常量

今天看看python的变量和常量:python3 C:\test.py 首先先说一下解释器执行Python的过程: 1. 启动python解释器(内存中) 2. 将C:\test.py内容从硬盘读入内存(这一步与文本编辑器是一样的) 3. 执行读入内存的代码 如果想要永久保存代码,就要用文件的方式如果想要调试代码,就要用交互式的方式 变量是什么? 变:变化,核心在与变化    量:衡量,计量,表达是一种状态 变量的定义 ps: level = 1 level:变量名  =:赋值运算符  1:值

python的变量,对象的内存地址以及参数传递过程

作为一个由c/c++转过来的菜鸟,刚接触Python的变量的时候很不适应,应为他的行为很像指针,void* ,不知道大家有没有这样的感觉.其实Python是以数据为本,变量可以理解为标签.作为c/c++的菜鸟,把跟踪变量地址的习惯带入Python,举个小例子说明Python的变量,对象,及参数传递. 1 '''例子1''' 2 x = 1 3 def fun(x): 4 x = 2 5 return None 6 7 fun(x) 8 print(x) 其实不打印也可以,我们用pycharm单步

python 的变量

一.什么是变量 1. 变量,顾名思义就是"可以改变的量"2. 变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变3. Python下变量是对一个数据的引用,比如我想读内存当中的一块数据,那么我是通过变量名来引用的,而变量重新赋值可以理解成在变量名在内存中指向了另外一个区域 二.变量的命名规则 1. 变量名由字母.数字.下划线组成2. 变量名不能以数字开头3. 变量名不可以使用关键字 三.如何给变量赋值 在python中给变量赋值是这样写的:a = 123 (中间有

android 使用静态变量传递数据

使用静态变量传递数据之通用方式. 测试应用:当前页面点击button传递数据到一个新的页面显示在textview中. 首先在,mainActivity.xml文件中加入一个button按钮 <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="测试

atitit.web的动态include 跟变量传递 java .net php

atitit.web的动态include 跟变量传递 java .net php 1. 动态include  <jsp:include 1 2. 使用QueryString 1 3. 使用Session变量 1 4. 使用Server.Transfer    //request.getRequestDispatcher(tmpltPage).forward(request, response); 2 5. Cookie  ,这个能html在两者之间传递了... 2 6. 参考 2 1. 动态in