永发信息网

内存变量按照作用域不同可以分为哪三类?各自的作用范围是怎样的?

答案:2  悬赏:0  手机版
解决时间 2021-01-04 11:25
  • 提问者网友:愿为果
  • 2021-01-04 00:22
内存变量按照作用域不同可以分为哪三类?各自的作用范围是怎样的?
最佳答案
  • 五星知识达人网友:拜訪者
  • 2021-01-04 01:08
全局变量 普通变量 局部变量
作用域即public private local 的用法,具体的自己百度太多
全部回答
  • 1楼网友:大漠
  • 2021-01-04 02:33
原理:python中任何变量都是对象,所以参数只支持引用传递方式。即通过名字绑定的机制,把实际参数的值和形式参数的名称绑定在一起,形式参数和实际参数指向内存中的同一个存储空间。 回答问题2: 每一次给变量赋值就是把这个名称的值在一个新内存中存储 你print (id (a)) 会发现每一次f(x),a的内存地址都是新的。所以你的问题二中l=[4,3] 与之前的l[]不是同一个名称,所以append上a就是[4,3,3](简明点就是l=[4,3]与l=[1,2]是两不同名的玩意) 讨论问题1: 在你的程序中a=1,a=2,a=5是int对象的三个实例,所以占用的是三段不同的内存,自然在程序执行完收回内存的时候才会被清理;而l是通过列表的append方法进行变化时,print (f(1)) print (f(2)) print (f(5))是对对一个实例进行操作的,所以内存地址不变; 同理print (f(3,[4,3]))直接给l赋值时,由于 是一个新的列表实例了,内存位置自然变化。 产生以上的问题的根本原因就是python的精髓:万物皆对象 (赋值的过程是对象的实例化) 看完自己的回答后:感觉真的很绕,不过我是尽力了,希望你能看懂,不明白的话,在追问里注明吧!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯