变量 和 数据 都是保存在 内存 当中的。
🍅计算机当中所有的数据都是必须要放在内存当中的,不同类型的数据占用的字节数不一样。
在 Python 当中函数的参数传递以及返回值都是靠引用来进行传递的。
在 Python 当中......
⒈变量和数据是分开存储的。
🍅程序就可以通过变量名来访问对应的内存地址『数据类型分配一定大小的内存空间』
⒉数据保存在内存中的一个位置。
⒊变量中保存着数据在内存中的地址。
⒋变量中记录数据的地址,就叫做是引用
⒌id()函数可以查看变量中保存数据所在的内存地址。
注意→如果变量已经被定义了的话,当给一个变量赋值的时候,本质上是修改数据的引用。
用id()函数查看int当中的内存地址,示例代码如下↓
num = 123456
print(id(num))
print(id(123456))
# 变量当中的值与数据一样那么内存地址也同
运行结果🖊
2176464156944
2176464156944
拓展:在编写程序的时候我们可以养成一个好的习惯,看到赋值语句,我们可以把注意力首先放到等号的右侧当中。
示例代码如下↓
def test(num):
print("在函数内部%d对应的内部地址是%d" % (num,id(num)))
a = 10
print("变量保存数据的地址是%d" %(id(a)))
test(a)
运行结果🖊
变量保存数据的地址是3078915779152 在函数内部10对应的内部地址是3078915779152
注:形参的值传递到实参它们的值是相等的,所以地址也是相等的。
变量引用代码如下示例↓
a = 10
print("第一次:%d" % a)
a = 20
print("第二次:%d" % a)
b = 5
a = b
print("第三次:%d" % a)
运行结果🖊
第一次:10
解释→定义一个整形变量a,并且赋值为1。 第二次:20
解释→将变量a赋值给20。 第三次:5
解释→定义一个整形变量b,并且赋值为5,再将b的值赋值给a。
在python当中函数的实参和返回值都是靠变量的引用来进行传递的,示例代码如下↓
def test(num):
pass
print("test函数内部当中a变量的值[%d]和数据的地址[%d]" % (num,id(num)))
a = 20
# id()查看数据的地址
print("a变量的值[%d]以及变量当中保存数据的地址是[%d]" % (a,id(a)))
# 调用test函数
test(a)
运行结果🖊
a变量的值[20]以及变量当中保存数据的地址是[2770576042896] test函数内部当中a变量的值[20]和数据的地址[2770576042896]