<option id="mwy0y"><strong id="mwy0y"></strong></option>
  • <ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <ul id="mwy0y"></ul>
  • <del id="mwy0y"><dfn id="mwy0y"></dfn></del><ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <abbr id="mwy0y"></abbr>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:長沙千鋒IT培訓  >  技術干貨  >  Python 命名空間的訪問

    Python 命名空間的訪問

    來源:千鋒教育
    發布人:xqq
    時間: 2023-11-06 13:49:25

    1、局部命名空間可以locals()BIF來訪問。

    locals返回一個名字/值對的dictionary。這個dictionary的鍵是字符串形式的變量名字,dictionary的值是變量的實際值。

    示例:

    deffunc1(i,str):

    x=12345

    print(locals())

    func1(1,"first")

    輸出:{'str':'first','x':12345,'i':1}

    2、全局(模塊級別)命名空間可以通過globals()BIF來訪問。

    示例:

    '''Createdon2013-5-26'''

    importcopy

    fromcopyimportdeepcopy

    gstr="globalstring"

    deffunc1(i,info):

    x=12345

    print(locals())

    func1(1,"first")

    if__name__=="__main__":

    print("thecurrentscope'sglobalvariables:")

    dictionary=globals()

    print(dictionary)

    輸出:(我自己給人為的換行、更換了順序,加顏色的語句下面重點說明)

    {

    '__name__':'__main__',

    '__doc__':'Createdon2013-5-26',

    '__package__':None,

    '__cached__':None,

    '__file__':'E:\\WorkspaceP\\Test1\\src\\base\\test1.py',

    '__loader__':<_frozen_importlib.SourceFileLoaderobjectat0x01C702D0>,

    'copy':,

    '__builtins__':,

    'gstr':'globalstring',

    'dictionary':{...},

    'func1':,

    'deepcopy':

    }

    總結

    1、模塊的名字空間不僅僅包含模塊級的變量和常量,還包括所有在模塊中定義的函數和類。除此以外,它還包括了任何被導入到模塊中的東西。

    2、我們看到,內置命名也同樣被包含在一個模塊中,它被稱作__builtin__。

    3、回想一下frommoduleimport和importmodule之間的不同。

    使用importmodule,模塊自身被導入,但是它保持著自已的名字空間,這就是為什么您需要使用模塊名來訪問它的函數或屬性:module.function的原因。

    但是使用frommoduleimportfunction,實際上是從另一個模塊中將指定的函數和屬性導入到您自己的名字空間,這就是為什么您可以直接訪問它們卻不需要引用它們所來源的模塊。使用globals函數,您會真切地看到這一切的發生,見上面的紅色輸出語句。

    3、locals與globals之間的一個重要的區別

    locals是只讀的,globals不是

    示例:

    deffunc1(i,info):

    x=12345

    print(locals())

    locals()["x"]=6789

    print("x=",x)

    y=54321

    func1(1,"first")

    globals()["y"]=9876

    print("y=",y)

    輸出:

    {'i':1,'x':12345,'info':'first'}

    x=12345

    y=9876

    解釋:

    locals實際上沒有返回局部名字空間,它返回的是一個拷貝。所以對它進行改變對局部名字空間中的變量值并無影響。

    globals返回實際的全局名字空間,而不是一個拷貝。所以對globals所返回的dictionary的任何的改動都會直接影響到全局變量。

    以上內容為大家介紹了Python命名空間的訪問,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    python實現WSGI的框架

    2023-11-13

    python打開文本文件有哪些方法?

    2023-11-13

    python使用loguru操作日志

    2023-11-13

    最新文章NEW

    python-=是什么意思

    2023-11-13

    pythonre是什么?

    2023-11-13

    python列表追加元素出錯的解決

    2023-11-13

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>