python 脚本函数传递参数

比如这段代码:
def add(num):
 num= num+10
d=2
add(d)
print d

输出 2
如果我要像C那样传递d的地址,使之输出12,我应该怎么做?

Python的函数传递方式是赋值,而赋值是通过建立变量与对象的关联实现的

  • 执行 d = 2时,你在__main__里创建了d,并让它指向2这个整型对象。
  • 执行函数add(d)过程中:
    • d被传递给add()函数后,在函数内部,num也指向了__main__中的2
    • 但执行num = num + 10之后,新建了对象12,并让num指向了这个新对象——12。
  • 如果你明白函数中的局部变量与__main__中变量的区别,那么很显然,在__main__中,d仍在指着2这个对象,它没有改变。因此,你打印d时得到了2。

如果你想让输出为12,最简洁的办法是:

  1. 在函数add()里增加return num
  2. 调用函数时使用d = add(d)

代码如下:

def add(num):
    num += 10
    return num

d = 2
d = add(d)
print d

作者:十月码
链接:https://www.zhihu.com/question/20591688/answer/24372602
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

时间: 2024-10-12 14:04:04

python 脚本函数传递参数的相关文章

给wxPython事件处理函数传递参数

给wxPython事件处理函数传递参数 2014-04-30 07:47:08segmentfault-博客--点击数:39 最近捣鼓Python,也就自然捣鼓上了wxPython.我曾经用过Qt和Gtk+写GUI,但几乎所有的Python书都告诉我说最好用的是wxPython,我没有尝试PyQt和PyGtk就开始研究wxPython了.在Qt和Gtk+之间我更喜欢Qt,因为它跨平台做得很好,而且商业化也不错.但wxWidget给人的感觉就完全不同了. 如果说wxWidgets相对于Qt有什么优

js中函数传递参数,究竟是值传递还是引用传递?

记住真理: js函数传递参数,不管是简单数据类型,还是引用数据类型,都是值传递!! 下面是js红包书里面的例子: function setName(obj) { obj.name = "Nicholas"; obj = new Object(); obj.name = "Greg"; } var person = new Object(); setName(person); alert(person.name); // "Nicholas" 肯定

Delphi过程、函数传递参数的八种方式

Delphi过程函数传递参数的八种方式 Delphi过程.函数传递参数的八种方式,布布扣,bubuko.com

python 中函数的参数

一.python中的函数参数形式 python中函数一般有四种表现形式: 1.def function(arg1, arg2, arg3...) 这种是python中最常见的一中函数参数定义形式,函数参数之间用逗号分隔,调用的时候的参数必须与定义的时候相同,且参数顺序与形参一一对应. ? 1 2 3 4 5 6 7 8 9 def myfunction(a, b):     print a,b #正确调用 myfunction(3,7) #错误调用 myfunction(3) myfunctio

javascript如何给事件处理函数传递参数

javascript如何给事件处理函数传递参数:在应用中可能需要给注册的事件处理函数传递参数,但是会发现好像无法实现直接传递,下面就简单介绍一下如何给事件处理函数传递参数.先看一段代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/&

向线程函数传递参数

向线程函数传递参数在构造线程对象时即可完成.但是要记住,默认情况下是把参数拷贝到线程内部,即使在函数中使用的是引用.例如 void f(int i,std::string const &s); std::thread t(f,3,"hello");</span> 上面代码中,函数f的第二个参数是std::string,传递的是char const *会转换为string. 当使用指针指向自动变量时,要特别注意: <span style="font-s

python把函数作为参数

python把函数作为参数 在2.1小节中,我们讲了高阶函数的概念,并编写了一个简单的高阶函数: def add(x,y,f): return f(x)+f(y)print add(-5,9,abs) >>> 14 根据函数的定义,函数执行的代码实际上是: abs(-5) + abs(9) 由于参数 x, y 和 f 都可以任意传入,如果 f 传入其他函数,就可以得到不同的返回值. 任务 利用add(x,y,f)函数,计算: 计算平方根可以用函数: >>> math.s

python进阶一(函数式编程)【2-1 python把函数作为参数】

2-1 python把函数作为参数 1 def add(x, y, f): 2 return f(x) + f(y) 如果传入abs作为参数f的值: 1 add(-5, 9, abs) 根据函数的定义,函数执行的代码实际上是: 1 abs(-5) + abs(9) 由于参数 x, y 和 f 都可以任意传入,如果 f 传入其他函数,就可以得到不同的返回值. 任务 利用add(x,y,f)函数,计算: 1 import math 2 3 def add(x , y , f): 4 return f

js函数传递参数时,如果是路径类型的参数,里边包含:&#39;\&#39;字符报错

在函数中,传递的参数中有“\”字符,js会将它默认为转义字符串,如果没有出现与他匹配的转义字符串,就会缺失,例如: 将这样的一个字符串作为一个参数:C:\Program Files (x86)\MySQL\MySQL Server 5.7\data\ 传递到函数里边的值就会被默认转化为:C:Program Files (x86)MySQLMySQL Server 5.7data 如果要实现这个参数的精确传递,就需要将字符串进行处理,一般会有两种方式: ①:将字符串里边的 ‘\’ 字符替换成 ‘/