导语:
本文主要介绍了关于python如何接受参数的相关知识,包括python 命令行,以及python编程这些编程知识,希望对大家有参考作用。
函数参数传递机制的问题本质上是调用函数(过程)与被调用函数(过程)在调用发生时的通信方式问题。有两种基本的参数传递机制:值传递和引用传递。
在传值过程中,将被调用函数的形参作为被调用函数的局部变量,即在栈中开辟一块内存空间,用于存放被调用函数传入的实参的值。调用函数,使之成为实际参数的副本。值传递的特点是被调用函数对形参的任何操作都作为局部变量进行,不会影响调用函数实参变量的值。
在传引用过程中,虽然被调用函数的形参也作为局部变量在栈中开辟内存空间,但是此时调用函数放入的实参变量地址为存储。被调用函数对形参的任何操作都按间接寻址处理,即通过栈中存储的地址访问调用函数中的实参变量。因此,被调用函数对形参所做的任何操作都会影响调用函数中的实参变量。
在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标识符是如何使用的?12/01
- ♥ 如何包装python代码09/26
- ♥ python中的and关键字是什么09/07
- ♥ 初学者学c还是学python?12/22
- ♥ 如何在 python 中创建一个具有文件名的临时文件?01/08
- ♥ 如何卸载python08/20
内容反馈