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).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...
随机推荐
- python之 数据类型判定与类型转换
一. 判断数据类型 0.type(x)type()可以接收任何东西作为参数――并返回它的数据类型.整型.字符串.列表.字典.元组.函数.类.模块,甚至类型对象都可以作为参数被 type 函数接受. & ...
- mac下hbase安装
出处:https://www.jianshu.com/p/510e1d599123 安装到的路径:/usr/local/Cellar/hbase/1.2.6 linux操作: linux命令 作用 . ...
- FastDFS 环境搭建
原文地址:FastDFS 环境搭建 博客地址:http://www.extlight.com 一.前言 最近闲下来,整理了一下笔记,今天就分享一下 FastDFS 环境搭建吧. 二.介绍 2.1 Fa ...
- x86 openwrt虚拟路由代理上网
一.代理服务器设置 1.下载代理软件CCProxy 6.8 Build 2.设置如下 二.x86 路由设置 1.在/etc目录下编辑profile http_proxy= https_proxy= f ...
- win7 任务计划运行批处理,不能正常运行,需用绝对路径
一段批处理在WIN XP下用任务计划可以正常运行: rar.exe u -m3 -s -r -o+ -x*.db -x*.zip -x*.rar zmv9netSrc.rar "Source ...
- 实际用户ID和有效用户ID (二)
看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解.今天好好区分了一下这几个概念并总结如下.说白了这几个UID引出都是为了系统的权限管理. 下面分别 ...
- robots写法及相关命令介绍
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问 的范围:如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有 ...
- Celery 异步定时周期任务
1/什么是Celery Celery 是基于Python实现的模块,用于执行异步定时周期任务的 其结构的组成是由 1.用户任务app 2.管道 broker 用于存储任务 官方推荐 redis rab ...
- 杂项-性能测试工具:LoadRunner
ylbtech-杂项-性能测试工具:LoadRunner LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadR ...
- [UE4]射中机器人