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

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一样了?为什么会这样?

形参就是函数入口的参数,函数入口参数传递只有传值与传值两种区别。传值在python里就是以对象,比如数组或者是类来传递。至于实参,我印象中是传递常量吧。如果不是这样,应该没有实参的说法。是某些老师为了忽悠,编造出来的概念游戏。简单变量应该是指相对对象来讲的。在python里,只有对象与基本变量类型。简单变量的说法在python里似乎也没有意义。所以,忘记简单变量与实参这样的说法。追问

明白。
但是KKKK为什么调用完函数后就被赋值了?我Debugger中也只是看到KKKK={},并没有变,但是再次调出KKKK时就变了,怎么会这样?

温馨提示:答案为网友推荐,仅供参考
相似回答