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

關于Python作用域自學總結

 更新時間:2019年06月10日 11:26:42   投稿:laozhang  
在本文里我們給大家整理了關于python自學作用域的相關知識點以及實例代碼,需要的朋友們跟著學習下。

作用域:顧名思義,作用的范圍。

如果你是自學者,而且已經進軍到函數這一部分了,那么就應當了解下Python的作用域。否則你可能會像我一樣,總是對一個變量名同時存在函數內和函數外且有不同值搞的暈頭轉向。

在這里就總結一下,在本人的知識范圍內所了解到的作用域是什么樣的,LEGB規(guī)則到底規(guī)定了什么。

全局范圍的產生(global):

我們創(chuàng)建一個xxx.py文件,就是一個模塊,這時一個作用域就產生了。這個范圍是整個模塊,稱作Global ,全局范圍。

例如:創(chuàng)建一個文件demo.py。

聲明一個變量,bd="百度"。

變量bd就是個全局變量。

bd="百度"

if True:
  print(bd)
#==============
def function_1():
  print(bd)
function_1()

bd在函數內和函數外都能被使用。

本地范圍的產生(Local):

當函數被定義后,一個屬于這個函數的小天地就產生了??梢栽趦炔慷x變量,也可以在它的內部嵌套函數。這個范圍就是局部范圍。在局部范圍的變量只能局部范圍內使用。

def locals():
  x=100
  print("local_x = ",x+20)
locals()

輸出:local_x =  120

如果在全局范圍內打印x就會報錯:

def locals():
  x=100
  print("local_x = ",x+20
print(x)

提示名字錯誤:x沒有被定義(NameError: name 'x' is not defined)

所以局部變量x僅在函數內使用。在其他地方調用時錯誤的。

嵌套范圍的產生(Enclosed ):

這個范圍在函數嵌套時產生,介于全局和局部范圍之間。

比如一個函數嵌套了另一個函數,這個函數的作用域就是嵌套的范圍,被嵌套的就是本地范圍,如果有更多層的嵌套,那就有多層的嵌套范圍。

x=20
def local_out():
  y=30
  def local_in():
    z=40
    print('本地變量z:',z)
  print('嵌套變量y:',y)
  local_in()
print("全局變量x:",x)
local_out()

輸出:

全局變量x: 20

嵌套變量y: 30

本地變量z: 40

python的內建函數:(Built-in)內建函數是天生就有的,你在那個作用域都可以以調用。用的最多的莫過于print()關于內建函數你可以在python的documentation內找到。python的內建函數:(Built-in)內建函數是天生就有的,你在那個作用域都可以以調用。用的最多的莫過于print()關于內建函數你可以在python的documentation內找到。

LEGB規(guī)則:

LEGB是Local,Enclosed ,Global,Built-in首字母的縮寫聯合。

它們的范圍是有小到大是這樣排列的,Local----Enclosed----Global----Built-in,而且上層套下層:

2、python腳本運行時找名稱的順序:

1)從它本身所在的層級找名;

2)如果沒有就向外層找;

3)不會向內找,也不會從和它同級的層內找。

3、如果在某個層內找到,就停止尋找,即使外面有同名的。

def max(s):
  m=min(s)
  return m

numList=[1,2,4,5,7,8,9]
maxNun=max(numList)
print('最大值=',maxNun)

輸出:最大值= 1

在全局范圍內,調用max()函數,因為有個自定義函數和內建的函數max()同名,所以它調用了,自定義的函數max(),就停止向外層查找。

同一作用域內兩個名稱是獨立的,互不干擾。

比如兩個同一級別的函數內,可以定義同名的變量,或嵌套同名的函數。

a=3
def add_1():
  a=30
  print('add_1的 a =',a)

def add_2():
  a = 3000
  print('add_2的 a =', a)

add_1()
add_2()
print('全局變量的 a =', a)

輸出:

add_1的 a = 30

add_2的 a = 3000

全局變量的 a = 3 

結束語以上就是關于,作用域的一些規(guī)則。個人認為,盡管作用域是獨立的,但避免寫同名的函數,和變量??善鸬拿趾芏?,何必給自己找麻煩。以上就是關于,作用域的一些規(guī)則。個人認為,盡管作用域是獨立的,但避免寫同名的函數,和變量。可起的名字很多,何必給自己找麻煩。

相關文章

  • 對python使用telnet實現弱密碼登錄的方法詳解

    對python使用telnet實現弱密碼登錄的方法詳解

    今天小編就為大家分享一篇對python使用telnet實現弱密碼登錄的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python常見排序操作示例【字典、列表、指定元素等】

    Python常見排序操作示例【字典、列表、指定元素等】

    這篇文章主要介紹了Python常見排序操作,結合實例形式總結分析了Python針對字典、列表及指定元素等常見排序操作實現技巧,需要的朋友可以參考下
    2018-08-08
  • pytorch中torch.max和Tensor.view函數用法詳解

    pytorch中torch.max和Tensor.view函數用法詳解

    今天小編就為大家分享一篇pytorch中torch.max和Tensor.view函數用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python實現大數據收集至excel的思路詳解

    Python實現大數據收集至excel的思路詳解

    這篇文章主要介紹了Python實現大數據收集至excel的思路,本文通過完整代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • python提效小工具之統計xmind用例數量(源碼)

    python提效小工具之統計xmind用例數量(源碼)

    這篇文章主要介紹了python提效小工具之統計xmind用例數量,利用python開發(fā)小工具,實現同一份xmind文件中一個或多個sheet頁的用例數量統計功能,需要的朋友可以參考下
    2022-10-10
  • Django外鍵(ForeignKey)操作以及related_name的作用詳解

    Django外鍵(ForeignKey)操作以及related_name的作用詳解

    這篇文章主要介紹了Django外鍵(ForeignKey)操作以及related_name的作用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • python 批量將PPT導出成圖片集的案例

    python 批量將PPT導出成圖片集的案例

    這篇文章主要介紹了python 批量將PPT導出成圖片集的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • PyCharm 專業(yè)版安裝圖文教程

    PyCharm 專業(yè)版安裝圖文教程

    這篇文章主要介紹了PyCharm 專業(yè)版安裝圖文教程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • python中的隨機函數小結

    python中的隨機函數小結

    這篇文章主要介紹了python中的隨機函數小結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 使用sklearn進行對數據標準化、歸一化以及將數據還原的方法

    使用sklearn進行對數據標準化、歸一化以及將數據還原的方法

    今天小編就為大家分享一篇使用sklearn進行對數據標準化、歸一化以及將數據還原的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評論

永清县| 故城县| 郧西县| 建水县| 衡山县| 柞水县| 罗江县| 衡山县| 达日县| 六枝特区| 白玉县| 宝坻区| 蒙山县| 白城市| 锡林郭勒盟| 卢湾区| 石嘴山市| 正镶白旗| 达孜县| 和政县| 紫云| 太保市| 九江县| 广水市| 东方市| 博乐市| 漯河市| 杨浦区| 库尔勒市| 苏尼特右旗| 奎屯市| 郑州市| 池州市| 梅河口市| 宜宾市| 株洲县| 来安县| 泸溪县| 定结县| 高雄县| 平谷区|