Python函数中的形参会改变实参的值? 5

1、问题:为什么我编的一个函数_MyCallback(hwnd,extra),调用后会改变实参的值?2、运行如下:>>>def_MyCallback(hwnd,extra... 1、问题:为什么我编的一个函数_MyCallback( hwnd, extra ),调用后会改变实参的值?2、运行如下:>>> def _MyCallback( hwnd, extra ): #回调函数 windows = extra temp=[] temp.append(hex(hwnd)) temp.append(win32gui.GetClassName(hwnd)) temp.append(win32gui.GetWindowText(hwnd)) windows[hwnd] = temp >>> hwindow=3738274>>> KKKK={}>>> a=_MyCallback(hwindow,KKKK)>>> a>>> print(a)None>>> KKKK{3738274: ['0x390aa2', 'MDIClient', '']}>>> 3、具体问题:KKKK原本是{},调用完参数后,变成和函数里面的windows一样了?为什么会这样? 展开
 我来答
智者总要千虑
高粉答主

2019-11-27 · 说的都是干货,快来关注
知道顶级答主
回答量:7.9万
采纳率:88%
帮助的人:1.4亿
展开全部
形参就是函数入口的参数,函数入口参数传递只有传值与传值两种区别。传值在python里就是以对象,比如数组或者是类来传递。至于实参,我印象中是传递常量吧。如果不是这样,应该没有实参的说法。是某些老师为了忽悠,编造出来的概念游戏。简单变量应该是指相对对象来讲的。在python里,只有对象与基本变量类型。简单变量的说法在python里似乎也没有意义。所以,忘记简单变量与实参这样的说法。
追问
明白。
但是KKKK为什么调用完函数后就被赋值了?我Debugger中也只是看到KKKK={},并没有变,但是再次调出KKKK时就变了,怎么会这样?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式