Python基础知识:变量和引用

    技术2022-07-10  144

    变量和引用

    领取Python学习资料可以加小编的微信:tz2020jd

    变量和数据都是保存在内存中的; 在python中函数的参数传递以及返回值都是引用传递的; 变量和数据是分开存储的; 变量中记录数据的地址,就叫做引用; 使用id()函数可以查看变量中保存的数据所在的内存地址; 注意: 如果变量已经被定义,当给一个变量复制的时候,本质上是修改了数据的引用。① 变量不再对之前的数据引用;②变量改为对新复制的数据引用; 可变类型和不可变类型 不可变类型: 内存中的数据不允许修改:

    ① 数字类型: int、bool、 float、complex、long ② 字符串 :str ③ 元组 :tuple

    可变类型: 内存中的数据可以被修改

    ① 列表 list ② 字典 dict

    可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a; 不可变类型: 变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。 函数参数传递时注意:

    不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。 可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响; 局部变量和全局变量 局部变量:函数内部定义的变量,只能在函数内部使用; 全局变量: 函数外部定义的变量,所有函数内部都可以使用这个变量;(不推荐使用)

    注意: 在python中,不允许修改全局变量的值,如果修改,会在函数中定义一个局部变量;

    num = 10

    # python中,不允许修改全局变量

    def method1():     num = 99  # 这里没有修改全局变量num,而是自己又定义了一个局部变量,执行完这个函数,局部变量就会回收     print(num)

    def method2():     print(num)  # 虽然在method1中修改了 num 但是却不会修改

    method1() method2()

    # 输出 # 99 # 10

    可以使用global关键字修改全局变量的值。 全局变量的命名规则: 前面加上g_ 或者gl_;  

    领取Python学习资料可以加小编的微信:tz2020jd

    Processed: 0.027, SQL: 9