函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两
创新互联建站成立与2013年,先为乳山等服务建站,乳山等地企业,进行企业商务咨询服务。为乳山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
种:值传递和引用传递。
推荐:Python教程
值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放
进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函
数的实参变量的值。
引用传递(pass-by-reference)过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函
数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正
因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
更多技术请关注Python视频教程。
pyhon中的execfile函数可以调用文件来执行,当如果执行文件需要参数时就将参数放在sys.argv中即可,测试情况如下:
#execfile.py
import sys
if __name__ == '__main__':
print sys.argv
print 'execfile'
sys.argv = 'appcfg.py update sdblog'.split();
print sys.argv
execfile('main.py')
#main.py
import sys
def main():
print 'main'
print sys.argv
if __name__ == '__main__':
main()
执行execfile.py test结果如下:
D:\GAE\devexecfile.py test
['D:\\GAE\\dev\\execfile.py', 'test']
execfile
['appcfg.py', 'update', 'sdblog']
main
['appcfg.py', 'update', 'sdblog']
def mul(x):
return x*x
def my_map(func, args):
for n in args:
print(func(n))
my_map(mul, [1,2,3,4])