python基礎 15 作用域

2021-10-05 13:57:35 字數 1526 閱讀 9384

0.前言

1.前提

基於win10專業版64位系統+64位jdk1.8+64位python3.6.5+社群版pycharm2018.1.3+unittest+selenium3.141.0。

要學好自動化測試,我們先從python語言基礎開始學習,一步乙個腳印,欲速則不達哦!

2.作用域

python中四種作用域,這裡就只說兩種最常見的。

全域性作用域:比如全域性變數,可以作用於整個**,定義在方法的外面。

區域性作用域:比如區域性變數,作用於函式(又叫方法)內部,也定義在其內部。

total = 0#全域性變數

def method():

total = 1#區域性變數

print(total)#列印的區域性變數total

if __name__ == '__main__':

print(total)#列印的全域性變數total

method()

print(total)#列印的全域性變數total

#執行結果:

在方法中直接使用全域性變數,通過關鍵字global,這樣在方法內部修改全域性變數的值後,外面的全域性變數的值也會跟著變。如下:

total = 0#全域性變數

def method():

global total#申明這是外面的全域性變數total

total = 1#修改全域性變數total的值

print(total)#列印的全域性變數total

if __name__ == '__main__':

print(total)#列印的全域性變數total

method()

print(total)#列印的全域性變數total

#執行結果:

將全域性變數當做引數傳到方法中使用並修改,會怎麼樣呢?

存在兩種情況,如果是不可變物件,全域性變數值不變:

total = 0#全域性變數,數值型為不可變物件

def method(n):

n = 1#修改n的值

print(n)#列印n

if __name__ == '__main__':

print(total)#列印的全域性變數total

method(total)#將全域性變數total當做引數傳入方法中來替換形參n

print(total)#列印的全域性變數total

#執行結果:

如果是可變物件,全域性變數值會跟著變:

total = [0]#全域性變數,列表為可變物件

def method(n):

n[0] = 1#修改n的值

print(n)#列印n

if __name__ == '__main__':

print(total)#列印的全域性變數total

method(total)#將全域性變數total當做引數傳入方法中來替換形參n

print(total)#列印的全域性變數total

#執行結果:

[0][1]

[1]注:數值型、字串和元組為不可變物件;列表、集合和字段為可變物件。

Python作用域 全域性作用域 區域性作用域

在python中,每個函式都會建立乙個作用域。pythonistas也可能稱函式擁有它們自己的命名空間 namespace 這意味著當在函式體裡遇到變數名 時,python首先在該函式的命名空間中查詢,python包含了一些讓我們檢視命名空間的函式。讓我們寫乙個簡單的函式來探查一下local和glo...

Python基礎 十四 函式作用域

1 變數的作用域 2 命名空間 3 python legbdef test a 10 print a test 列印 10 複製 e enclosing function locals 外部巢狀函式的命名空間def test a 10 def inner print a inner test 列印 ...

Python基礎(作用域 內建函式)

作用域 概念 作用域指的是變數在程式中的應用範圍 作用域按照變數的定義位置可以分為4類 l e g b local 函式內部 區域性作用域 enclosing 巢狀函式的外層函式內部 巢狀作用域 global 模組全域性 全域性作用域 built in 內建 內建作用域 123 456訪問順序 l ...