>>> a = 100 #这里的a是不可变类型 >>> def test(a): ... a+=a #这个式子有两层含义:1.这里可能是重新定义一个新的变量a,2.也有可能是修改a的值,但由于全局 #变量a不能修改,所以此处是重新定义了一个a; ... print("函数内:%d"%a) ... >>> test(a) 函数内:200 >>> print(a) 100
>>> a = [100] #这里的a是一个列表,是可变类型 >>> def test(a): ... a+=a #由于列表a是可变类型,所以这里是修改a ... print("函数内:") ... print(a) ... >>> test(a) 函数内: [100, 100] >>> print(a) [100, 100]
>>> a = 100 >>> def test(a): ... a=a+a #最初为了好理解,所以可以认为a+=a等价于a=a+a,所以这里同引用传参一 ... print("函数内:%d"%a) ... >>> test(a) 函数内:200 >>> print(a) 100
>>> a = [100] >>> def test(a): #1. 先算 =号右边的 #2. 算出来的结果是[100,100] #3. a = [100,100] #4. 让a变量指向了[100,100],即a保存的是[100,100]的引用(内存地址) ... a=a+a #对于这种情况,等号左边的a是重新定义的一个量,此时a=a+a与a+=a不一样 ... print("函数内:") ... print(a) ... >>> test(a) 函数内: [100, 100] >>> print(a) [100]
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理