Python按值传递所有参数,但有例外(对象的别名)(初步理解)
python按值传递所有参数,但有例外(对象的别名)(初步理解)
- 按值传递的例子:按值传递
var = 1
def test(a):
a = 3
test(var)
print(var)
# 运行结果入下
#1
#
传入函数后,函数改变的是变量值的副本,这个副本仅在函数内使用生效,即传入函数的参数是一个函数内部的局部变量,因此var
值没有被改变
- 例外:存在状态的对象
from graphics import *
win = GraphWin('test', 300, 300)
# 函数定义, 设置窗口背景色并且在窗口中画一条线段的函数
def setbgAndLine(graphics ,somewin, colour):
somewin.setBackground(colour)
somewin.setCoords(0,0,10,10)
Line(Point(4,4), Point(6,6)).draw(somewin)
input() # 使窗口不自动关闭(因为ide里的窗口会闪现一下就消失)
somewin.close()
# 函数调用
setbgAndLine( win, 'red')
运行结果
(初步理解)这里传入函数的参数是类似是指向这个对象的指针的副本,是一种别名的情况,在函数中对该对象进行的改变,实际上也对函数外的实际对象做出了改变,可能类似于按引用传递
moyutime:本文仅是学习心得,观点仅供参考,祝愿读者学习途中快乐且不断有所收获。