python怎么在函数内修改全局变量,python把变量变成全局变量

  python怎么在函数内修改全局变量,python把变量变成全局变量

  修改Python变量只会改变变量指向的地址。

  1.不可变对象(数字、字符串、元组)

  Python在修改不可变变量的时候只能改变它所指向的地址,因为对于不可变变量来说,变量的内容在创建之后就会固定在某个地址,这个地址的内容是不能改变的,因为如果其他变量想要存储同样的内容,我们可以直接让变量指向同一个地址就可以了,这样可以节省内存。当我们重新分配一个不可变的对象时,就相当于让这个变量指向另一个地址。

  在函数内部,当我们要修改一个外部不可变的对象变量时,不能直接重新赋值,因为函数无权直接修改外部变量的指针。如果我们在函数内部直接给外部变量赋值,实际上是创建了一个局部变量,外部变量的内容是不变的。如果稍后调用它,我们也将访问这个局部变量的内容。如果函数内部没有外部变量的赋值语句,可以在函数内部直接访问外部变量,即可以查看外部变量的值。但是,如果有一个语句先调用函数内部的外部变量,后面又有一个语句修改外部变量,那么这个变量就会被视为局部变量,所以在执行前面调用的语句时会报错,说是未定义的。这是因为这个局部变量是后来创建的(也就是说,我们想要修改外部变量

  2.可变对象(列表、字典)

  当我们创建一个可变对象时,我们将在内存中重新打开一个空间来存储这个列表或字典中元素的地址。每次我们直接把变量作为一个整体重新赋值(不是改变下标中的元素,而是直接重新赋值变量名),就会重新开一个空格。即使我们这次赋的值和原来的值一样,我们也会重新打开一个空间。我们可以反复给一个可变对象赋同一个值,然后每次都检查这个变量的id。

  3.如何改变函数内部的外部变量?

  ZZZ DXS:通过函数内部的global关键字声明这是一个全局变量,相当于拿到了镜头,你可以直接在函数内部改变这个全局变量的点。

  Mini Dolphin:使用返回值并将其传递给调用函数的原始变量。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: