最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python兩個(gè)內(nèi)置函數(shù) locals 和globals(學(xué)習(xí)筆記)

 更新時(shí)間:2016年08月28日 16:36:34   投稿:mdxy-dxy  
這篇文章主要介紹了Python兩個(gè)內(nèi)置函數(shù) locals 和globals(學(xué)習(xí)筆記),需要的朋友可以參考下

Python兩個(gè)內(nèi)置函數(shù)——locals 和globals

這兩個(gè)函數(shù)主要提供,基于字典的訪問(wèn)局部和全局變量的方式。
在理解這兩個(gè)函數(shù)時(shí),首先來(lái)理解一下python中的名字空間概念。Python使用叫做名字空間的東西來(lái)記錄變量的軌跡。名字空間只是一個(gè)字典,它的鍵字就是變量名,字典的值就是那些變量的值。實(shí)際上,名字空間可以象Python的字典一樣進(jìn)行訪問(wèn)

每個(gè)函數(shù)都有著自已的名字空間,叫做局部名字空間,它記錄了函數(shù)的變量,包括函數(shù)的參數(shù)和局部定義的變量。每個(gè)模塊擁有它自已的名字空間,叫做全局名字空間,它記錄了模塊的變量,包括函數(shù)、類、其它導(dǎo)入的模塊、模塊級(jí)的變量和常量。還有就是內(nèi)置名字空間,任何模
塊均可訪問(wèn)它,它存放著內(nèi)置的函數(shù)和異常。

當(dāng)一行代碼要使用變量 x 的值時(shí),Python會(huì)到所有可用的名字空間去查找變量,按照如下順序:

1.局部名字空間 - 特指當(dāng)前函數(shù)或類的方法。如果函數(shù)定義了一個(gè)局部變量 x,Python將使用這個(gè)變量,然后停止搜索。
2.全局名字空間 - 特指當(dāng)前的模塊。如果模塊定義了一個(gè)名為 x 的變量,函數(shù)或類,Python 將使用這個(gè)變量然后停止搜索。
3.內(nèi)置名字空間 - 對(duì)每個(gè)模塊都是全局的。作為最后的嘗試,Python將假設(shè) x 是內(nèi)置函數(shù)或變量。

如果Python在這些名字空間找不到 x,它將放棄查找并引發(fā)一個(gè) NameError 的異常,同時(shí)傳遞
There is no variable named 'x' 這樣一條信息。

象Python中的許多事情一樣,名字空間在運(yùn)行時(shí)直接可以訪問(wèn)。特別地,局部名字空間可以通過(guò)內(nèi)置的 locals 函數(shù)來(lái)訪問(wèn)。全局(模塊級(jí)別)名字空間可以通過(guò) globals 函數(shù)來(lái)訪問(wèn)

locals 介紹

>>> def test(arg):
#函數(shù) foo 在它的局部名字空間中有兩個(gè)變量:arg(它的值被傳入函數(shù)),和 z(它是在函數(shù)里定義的)。
  z = 1
  print locals()
>>> test(4)
#locals 返回一個(gè)名字/值對(duì)的字典。這個(gè)字典的鍵字是字符串形式的變量名字,字典的值是變量的實(shí)際值。
#所以用 4 來(lái)調(diào)用 foo,會(huì)打印出包含函數(shù)兩個(gè)局部變量的字典:arg (4) 和 z (1)。
{'z': 1, 'arg': 4}
>>> test('doulaixuexi')
#locals 可以用于所有類型的變量。
{'z': 1, 'arg': 'doulaixuexi'}
>>>

globals 介紹

>>> from sys import *
>>> print globals()
{'setrecursionlimit': <built-in function setrecursionlimit>, 
'dont_write_bytecode': False, 
'getfilesystemencoding': <built-in function getfilesystemencoding>, 
'long_info': sys.long_info(bits_per_digit=15, sizeof_digit=2), 
'stdout': <idlelib.rpc.RPCProxy object at 0x02110850>, 
'text': <function text at 0x02111A70>, 
'meta_path': [], 
'exc_clear': <built-in function exc_clear>, 
'prefix': 'C:\\Python27', 'getrefcount': <built-in function getrefcount

由此可見(jiàn),發(fā)現(xiàn)globals 函數(shù)返回一個(gè)全局變量的字典,包括所有導(dǎo)入的變量。


#局部變量函數(shù)locals例子(locals 返回一個(gè)名字/值對(duì)的字典。):

def foo(arg, a):
	x = 1
	y = 'xxxxxx'
	for i in range(10):
		j = 1
		k = i
	print locals()


#調(diào)用函數(shù)的打印結(jié)果	
foo(1,2)
#{'a': 2, 'i': 9, 'k': 9, 'j': 1, 'arg': 1, 'y': 'xxxxxx', 'x': 1}

 

from module import 和 import module之間的不同。使用 import module,模塊自身被導(dǎo)入,
但是它保持著自已的名字空間,這就是為什么你需要使用模塊名來(lái)訪問(wèn)它的函數(shù)或?qū)傩裕╩odule.function)
的原因。但是使用 from module import,實(shí)際上是從另一個(gè)模塊中將指定的函數(shù)和屬性導(dǎo)入到你自己的名字
空間,這就是為什么你可以直接訪問(wèn)它們卻不需要引用它們所來(lái)源的模塊的原因。

locals 是只讀的,globals 不是 

相關(guān)文章

  • 詳解pytorch tensor和ndarray轉(zhuǎn)換相關(guān)總結(jié)

    詳解pytorch tensor和ndarray轉(zhuǎn)換相關(guān)總結(jié)

    這篇文章主要介紹了詳解pytorch tensor和ndarray轉(zhuǎn)換相關(guān)總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 對(duì)Python正則匹配IP、Url、Mail的方法詳解

    對(duì)Python正則匹配IP、Url、Mail的方法詳解

    今天小編就為大家分享一篇對(duì)Python正則匹配IP、Url、Mail的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Pycharm基本操作及調(diào)試代碼

    Pycharm基本操作及調(diào)試代碼

    最近天氣狂熱暴躁,很難靜下心來(lái)學(xué)習(xí)啦,于是給大家整理一些python開(kāi)發(fā)工具pycharm基本操作及調(diào)試代碼吧,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • Python腳本Selenium及頁(yè)面Web元素定位詳解

    Python腳本Selenium及頁(yè)面Web元素定位詳解

    這篇文章主要為大家介紹了Python腳本中如何使用Selenium定位頁(yè)面Web元素的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python數(shù)據(jù)庫(kù)封裝實(shí)現(xiàn)代碼示例解析

    Python數(shù)據(jù)庫(kù)封裝實(shí)現(xiàn)代碼示例解析

    這篇文章主要介紹了Python數(shù)據(jù)庫(kù)封裝實(shí)現(xiàn)代碼示例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • NumPy排序的實(shí)現(xiàn)

    NumPy排序的實(shí)現(xiàn)

    這篇文章主要介紹了NumPy排序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Python中元組解構(gòu)的技巧詳解

    Python中元組解構(gòu)的技巧詳解

    在Python中,元組(tuple)是一種常用的數(shù)據(jù)結(jié)構(gòu),元組的解構(gòu)是一項(xiàng)強(qiáng)大的特性,快速、方便地將元組中的值分配給多個(gè)變量,下面我們就來(lái)學(xué)習(xí)一下Python中元組解構(gòu)的技巧吧
    2024-01-01
  • python讀取大型csv文件的操作方法(降低內(nèi)存占用)

    python讀取大型csv文件的操作方法(降低內(nèi)存占用)

    遇到大型的csv文件時(shí),pandas會(huì)把該文件全部加載進(jìn)內(nèi)存,從而導(dǎo)致程序運(yùn)行速度變慢,本文提供了批量讀取csv文件、讀取屬性列的方法,減輕內(nèi)存占用情況,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2024-03-03
  • python3監(jiān)控CentOS磁盤(pán)空間腳本

    python3監(jiān)控CentOS磁盤(pán)空間腳本

    這篇文章主要為大家詳細(xì)介紹了Python3監(jiān)控CentOS磁盤(pán)空間腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • python sorted函數(shù)的小練習(xí)及解答

    python sorted函數(shù)的小練習(xí)及解答

    這篇文章主要介紹了python sorted函數(shù)的小練習(xí)及解答,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論

建阳市| 曲水县| 灵川县| 浏阳市| 宁安市| 河津市| 绥中县| 平泉县| 托克托县| 盐城市| 南阳市| 天峨县| 德格县| 天门市| 保靖县| 措勤县| 郯城县| 明溪县| 昌图县| 贵南县| 时尚| 西宁市| 宜宾县| 瑞金市| 阿荣旗| 扶绥县| 东至县| 财经| 临潭县| 黄大仙区| 桐柏县| 沙雅县| 杨浦区| 斗六市| 射阳县| 桃源县| 开远市| 张家口市| 确山县| 新巴尔虎左旗| 屏边|