第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Python 中的作用域

變量的作用域是指變量的作用范圍,是程序可以訪問該變量的正文區(qū)域。例如:

g = 123

def function():
    print(g)

print(g)    
  • 程序總共有 6 行
  • 在第 1 行,定義了變量 g
  • 在第 4 行,在函數(shù) function 內(nèi)部訪問變量 g
  • 在第 6 行,在全局范圍訪問變量 g

因為可以在程序的任意位置(從第 1 行到第 6行)訪問到該變量,變量 g 的作用域就是從第 1 行到第 6行的正文區(qū)域。

1. 四種作用域

1.1 概述

在 Python 中,存在 4 種類型的作用域:

  • Builtin 作用域,能夠訪問內(nèi)置函數(shù)和內(nèi)置變量的正文區(qū)域
  • Global 作用域,能夠訪問全局變量的正文區(qū)域
  • Local 作用域,能夠訪問函數(shù)參數(shù)和局部變量的正文區(qū)域
  • Enclosing 作用域,如果函數(shù)是嵌套定義的,能夠訪問外部函數(shù)的參數(shù)和局部變量的正文區(qū)域

1.2 Builtin 作用域

Builtin 作用域是能夠訪問內(nèi)置函數(shù)和內(nèi)置變量的正文區(qū)域。示例說明 Builtin 作用域:

def function():
    print(max(1, 2))

print(max(3, 4))
  • max 是內(nèi)置函數(shù)
    • 它的作用域類型是 Builtin 作用域
    • 在第 2 行,在函數(shù) function 內(nèi)訪問它
    • 在第 4 行,在全局范圍訪問它
  • max 的作用域是從第 1 行到第 4 行的文本區(qū)域

1.3 Global 作用域

Global 作用域是能夠訪問全局變量的正文區(qū)域。示例說明 Global 作用域:

global_var = 123

def function():
    print(global_var)

print(global_var)
  • global_var 是全局變量
    • 它的作用域類型是 Global 作用域
    • 在第 1 行,在全局范圍訪問它
    • 在第 4 行,在函數(shù) function 內(nèi)訪問它
    • 在第 6 行,在全局范圍訪問它
  • global_var 的作用域是從第 1 行到第 6 行的文本區(qū)域

1.4 Local 作用域

Local 作用域是能夠訪問函數(shù)參數(shù)和局部變量的正文區(qū)域。示例說明 Local 作用域:

def function():
    local_var = 123
    print(local_var)

print(local_var)
  • local_var 是函數(shù) function 的局部變量
    • 它的作用域類型是 Local 作用域
    • 在第 2 行,在函數(shù) function 內(nèi)訪問它
    • 在第 3 行,在函數(shù) function 內(nèi)訪問它
  • 在第 5 行,在函數(shù) function 外訪問變量
    • 只能在函數(shù)內(nèi)部訪問局部變量
    • 運行時會產(chǎn)生異常 NameError
  • local_var 的作用域是從第 2 行到第 3 行的文本區(qū)域

1.5 Enclosing 作用域

假設函數(shù)是嵌套定義的,Enclosing 作用域是能夠訪問外部函數(shù)的參數(shù)和局部變量的正文區(qū)域。示例說明 Local 作用域:

def outter():
    outter_var = 123
    def inner():
        inner_var = 456
        print(outter_var)

outter()        
  • 函數(shù)嵌套定義
    • 函數(shù) outter 是外部函數(shù)
    • 函數(shù) inner 是內(nèi)部函數(shù)
  • outter_var 是外部函數(shù) outter 的局部變量
    • 它的作用域類型是 Encloing 作用域
    • 在第 2 行,在外部函數(shù) outter 內(nèi)訪問它
    • 在第 5 行,在外部函數(shù) inner 內(nèi)訪問它
  • outter_var 的作用域是從第 2 行到第 5 行的文本區(qū)域