#!/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檔案中宣告,全域性範圍內都可以訪問。區域性變數是在某個函式中宣告的,只能在該函式中呼叫它,如果試圖在超出範圍的地方呼叫,程式就爆掉了 如果在函式內部定義與某個全域性變數一樣名稱的區域性變數,就可能會導致意...