python中的全域性變數和區域性變數

2022-06-30 11:51:06 字數 1506 閱讀 3208

#

!/usr/bin/env python

#-*- coding: utf-8 -*-

#@time : 2021/3/14 16:56

#@author : banzhu

#@file : variable.py

"""作用域(scope),就是變數的有效範圍,就是變數可以在哪個範圍以內使用

區域性變數(local variable):定義在函式內部的變數是區域性變數,區域性變數的作用範圍只能在函式內部生效,不能在函式外被引用

全域性變數(global variable):在整個函式中都可以訪問到,但不要試圖在函式內部修改全域性變數的值,

因為python會建立乙個新的區域性變數替代(名字與全域性變數相同),但真正的全域性變數是不動的

"""#

區域性變數:

defmyfun():

a = 0 #

區域性變數

a += 1

print("

myfun a =

", a)

defmyfun2():

a = [1, 2, 3] #

區域性變數

a = [i + 1 for i in

a]

print("

myfun2 a =

", a)

#定義全域性變數的方式有2種

#1.在函式體外定義的變數,一定是全域性變數

#整數,字串等不可更改

a = 1 #

a為全域性變數

defmyfun():

a = 2 #

區域性變數

a += 1

print("

函式中 a =

", a)

myfun()

print("

函式外 a =

", a)

#2.在函式體內定義全域性變數,使用global關鍵字對變數進行修飾後,該變數會變為全域性變數

#利用global關鍵字 引用全域性變數

a = 1

defmyfun():

global a #

使用a之前用global

a += 1

print("

函式中 a =

", a)

myfun()

print("

函式外 a =

", a)

#獲取指定作用域(全域性或區域性)內所有的變數

#1.globals()函式。返回乙個包含全域性範圍內所有變數的字典,該字典中的每個鍵值對,鍵為變數名,值為該變數的值

#2.locals()函式。在函式內部呼叫 locals() 函式,會獲得包含所有區域性變數的字典;而在全域性范文內呼叫 locals() 函式,其功能和 globals() 函式相同

#3.vars()函式。vas(object)返回乙個指定 object 物件範圍內所有變數組成的字典,如果不傳入object 引數,vars() 和 locals() 的作用完全相同。

python中全域性變數和區域性變數

1 python中定義在函式內部的變數稱為區域性變數,區域性變數只能在區域性函式內部生效,它不能在函式外部被引用。def discount price,rate price discounted price rate return price discounted sale price float ...

python中的全域性變數和區域性變數

全域性變數與區域性變數兩者的本質區別就是在於作用域 用通俗的話來理解的話,全域性變數是在整個py檔案中宣告,全域性範圍內都可以訪問。區域性變數是在某個函式中宣告的,只能在該函式中呼叫它,如果試圖在超出範圍的地方呼叫,程式就爆掉了 如果在函式內部定義與某個全域性變數一樣名稱的區域性變數,就可能會導致意...

Python中的全域性變數和區域性變數

全域性變數與區域性變數兩者的本質區別就是在於作用域 用通俗的話來理解的話,全域性變數是在整個py檔案中宣告,全域性範圍內都可以訪問。區域性變數是在某個函式中宣告的,只能在該函式中呼叫它,如果試圖在超出範圍的地方呼叫,程式就爆掉了 如果在函式內部定義與某個全域性變數一樣名稱的區域性變數,就可能會導致意...