python传参数
Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。
列表,字典等参数: 传引用,函数中对这些对象做修改,原来的值也会被修改。
int,string, tuple: 传引用,但是结果像传值,函数的修改不会反映到原变量。
#!/usr/bin/python
# -*- coding: utf-8 -*- a = {i: i*i for i in range(10)}
b = 10
c = "hello world!" def pop_list(x):
for i in range(len(x)):
x.pop(i)
print x def decrease(y):
y = y-2
print y def slice(string):
string = string[:2]
print string if __name__ == "__main__":
print "-" * 10 + "original a" + "-" * 10
print a
print "-"*10 + "params in function" + "-"*10
pop_list(a)
print "-" * 10 + "a" + "-" * 10
print a print "-" * 10 + "original b" + "-" * 10
print b
print "-" * 10 + "params in function" + "-" * 10
decrease(b)
print "-" * 10 + "b" + "-" * 10
print b print "-" * 10 + " original c" + "-" * 10
print c
print "-" * 10 + "params in function" + "-" * 10
slice(c)
print "-" * 10 + "c" + "-" * 10
print c
output:
----------original a----------
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
----------params in function----------
{}
----------a----------
{}
----------original b----------
10
----------params in function----------
8
----------b----------
10
---------- original c----------
hello world!
----------params in function----------
he
----------c----------
hello world!
ref: http://www.cnblogs.com/loleina/p/5276918.html
python传参数的更多相关文章
- shell 向python传参数,空格引发的问题
昨天用一个shell脚本,调用一个python脚本,并把shell脚本中用 time1=`date "+%Y-%m-%d %H:%M:%S"`生成的时间戳作为参数,传到python ...
- Python传参数最简单易懂的描述
关于,python的传参,很多人会搞得一头雾水,我也跟朋友讨论多次,最终通过实验,得到结论. 一.所有传递都是引用传递 二.在函数内使用[变量名]=,相当于定义啦一个局部变量 OK,一段简单的 ...
- shell向python传参数
想要在shell中调用python脚本时实现: python pyServer.py argu1 argu2 argu3 利用 sys.argv 即可读取到 相应参数: # coding=utf-8 ...
- python传参数是传值还是传址?
传址 不可变类型(数值型.字符串.元组): 因变量不能修改,所以运算不会影响到变量自身 可变类型(列表字典):函数体运算可能会更改传入的参数变量.
- Python中参数是传值,还是传引用?
在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的?回答这个问题前,不如先来看两段代码. 代码段1: def foo(arg): arg = 2 print(a ...
- Python之给程序传参数
1.代码 import sys # 导入系统 args = sys.argv # 获取系统参数 if(args.__len__() == 2): print("%s是世界上最好的语言!&qu ...
- 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)
详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类 Python中函数参数定义及调用函数时传参 ...
- python中函数的参数:必传参数(位置参数)、默认值参数、参数组传参、关键字传参
1.必传参数也叫做位置参数,因为必填,也必须对应位置 2.默认值参数如上图的word 3.参数组参数:传进去的是0个.或多个value的形式,,,和位置参数有点像,只传value值,但是没有限制个数 ...
- Java可变参数 & Python可变参数 & Scala可变参数
Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...
随机推荐
- Oracle RAC 归档 与 非归档 切换
Oracle 的生产库都是启动在归档模式下,RAC下归档非归档的切换和单实例也是一样的,都是在MOUNT模式下执行ALTER DATABASE ARCHIVELOG/NOARCHIVELOG;命令. ...
- JS 的预编译和执行顺序
脚本执行js引擎做的工作: 语法分析 预编译 解释执行
- MYSQL的空间查询(转帖)
SELECT x(location),y(location) FROM frddata.points; 本文将向各位介绍如何使用MySql5.x中的空间数据库,并展示一下它高效的性能(前提是正确使用) ...
- FineUI 单击菜单页面内容完全刷新,关闭Tab
res/js/main.js 修改initTreeabStrip 中 refreshWhenExist.refreshWhenTabChang两参数值 // 初始化主框架中的树(或者Accor ...
- UOJ 188 【UR #13】Sanrd——min_25筛
题目:http://uoj.ac/problem/188 令 \( s(n,j)=\sum\limits_{i=1}^{n}[min_i>=p_j]f(j) \) ,其中 \( min_i \) ...
- 因环境变量设置问题引起的command not found
ls command not found vi command not found 只要的原因是因为环境变量的问题,编辑profile文件没有写正确,导致在命令行下 ls等命令不能够识别.解决办法:在 ...
- 树莓派3代B型 Raspberry Pi Model 3 B 安装 centos7系统
板子类型: Raspberry Pi Model 3 B 搭配 32G的SD卡: 下载支持树莓派版本的centos7系统 https://buildlogs.centos.org/centos/7/i ...
- Windows Phone 的这几年
Windows Phone 从2010年10月发布,到如今已经有3年多了.从那时坚持到现在的用户和开发者一定感慨很多吧. 一直关注着这个让人既爱又恨的平台的发展,笔者不仅是使用者,也同时是开发者,这里 ...
- [转]C# 安装布署
C# 安装布署 及Windows服务自动启动 分类: asp.net2009-09-23 10:43 1126人阅读 评论(0) 收藏 举报 windowsc#serviceobject服务器 设置s ...
- 正则的使用及replace细讲
1.var reg=/./ 与 var reg=/\./的区别? .代表任意一个字符 \.而后者代表这个字符串中得有一个. 2.?的使用 如果单独的一个字符后面带? /\d?/ 代表1个或0个这个字符 ...