您现在的位置是:课程教程文章
python如何接受参数
2023-12-18 21:37课程教程文章 人已围观
-
Python+人工智能之数学函数库NumPy教程
Python+人工智能之数学函数库NumPy教程课程咨询和资料获取请加老师QQ 1011800132 NumPy 的前身 Numeric 最早是由 Jim Hugunin... -
pythonVIP入学班
pythonVIP入学班... -
Python Qt 图形界面开发 PyQt5 PySide2
Python Qt 图形界面开发 PyQt5 PySide2课程特色 特色1:一对一 教学 我们的学员有的是 辞职专门学习、有的是边工作... -
Python+人工智能之爬虫基础教程
Python+人工智能之爬虫基础教程课程咨询和资料获取请加老师QQ 1011800132 相比与其他静态编程语言,如java,c#,...
函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。
值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
python学习网,大量的免费python学习视频,欢迎在线学习!
引用传递(pass-by-reference)过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
在python中实际又是怎么样的呢?
先看一个简单的例子:
from ctypes import * import os.path import sys def test(c): print "test before " print id(c) c+=2 print "test after +" print id(c) return c def printIt(t): for i in range(len(t)): print t[i] if __name__=="__main__": a=2 print "main before invoke test" print id(a) n=test(a) print "main afterf invoke test" print a print id(a)
运行后结果如下:
>>> main before invoke test 39601564 test before 39601564 test after + 39601540 main afterf invoke test 2 39601564课程教程:python如何接受参数
上一篇:终端如何退出python
下一篇:没有了