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

python全局變量引用與修改過程解析

 更新時間:2020年01月07日 11:36:41   作者:yanfengt  
這篇文章主要介紹了python全局變量引用與修改過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了python全局變量引用與修改過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

一、引用

使用到的全局變量只是作為引用,不在函數(shù)中修改它的值的話,不需要加global關(guān)鍵字。如:

#! /usr/bin/python

a = 1
b = [2, 3]

def func():
  if a == 1:
    print("a: %d" %a)
  for i in range(4):
    if i in b:
      print("%d in list b" %i)
    else:
      print("%d not in list b" %i)
if __name__ == '__main__':
  func()

輸出結(jié)果:

可以看出,無論是列表還是變量,都是可以直接引用的。

二、修改

使用到的全局變量,需要在函數(shù)中修改的話,就涉及到歧義問題,如:

#! /usr/bin/python
a = 1
b = [2, 3]

def func():
  a = 2
  print "in func a:", a
  b[0] = 1
  print "in func b:", b

if __name__ == '__main__':
  print "before func a:", a
  print "before func b:", b
  func()
  print "after func a:", a
  print "after func b:", b

輸出結(jié)果:

可以看出,對于變量a,在函數(shù)func中"a = 2",因為存在既可以表示引用全局變量a,也可以表示創(chuàng)建一個新的局部變量的歧義,所以python默認指定創(chuàng)建一個新的局部變量來消除這一歧義,但對于列表b而言,"b[0] = 1"不存在這種歧義,因此直接修改了全局變量,但是如果改成了"b = [3, 4]",那么b也會變成局部變量。特別地,當(dāng)在func中a = 2之前加入"if a == 1:"這一語句,腳本運行出錯,因為這一語句引入了全局變量,導(dǎo)致了"a = 1"這一語句無法創(chuàng)建同名的局部變量。

因此,需要修改全局變量a,可以在"a = 2"之前加入global a聲明,如:

#! /usr/bin/python

a = 1
b = [2, 3]

def func():
  global a
  a = 2
  print "in func a:", a
  b[0] = 1
  print "in func b:", b

if __name__ == '__main__':
  print "before func a:", a
  print "before func b:", b
  func()
  print "after func a:", a
  print "after func b:", b

輸出結(jié)果:

結(jié)論:引用全局變量,不需要golbal聲明,修改全局變量,需要使用global聲明,特別地,列表、字典等如果只是修改其中元素的值,可以直接使用全局變量,不需要global聲明。結(jié)論:引用全局變量,不需要golbal聲明,修改全局變量,需要使用global聲明,特別地,列表、字典等如果只是修改其中元素的值,可以直接使用全局變量,不需要global聲明。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python+selenium識別驗證碼并登錄的示例代碼

    python+selenium識別驗證碼并登錄的示例代碼

    本篇文章主要介紹了python+selenium識別驗證碼并登錄的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • pycharm與cmd中制表符不一樣的問題解決

    pycharm與cmd中制表符不一樣的問題解決

    本文主要介紹了PyCharm和CMD中制表符寬度不同的問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • python 如何對logging日志封裝

    python 如何對logging日志封裝

    這篇文章主要介紹了python 如何對logging日志封裝,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Python的一些用法分享

    Python的一些用法分享

    前不久學(xué)了點python,昨天剛好要處理一個文件,于是拿來試試
    2012-10-10
  • Python3列表List入門知識附實例

    Python3列表List入門知識附實例

    序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。序列中的每個元素都分配一個數(shù)字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推
    2020-02-02
  • 使用Python和OpenCV進行視覺圖像分割的代碼示例

    使用Python和OpenCV進行視覺圖像分割的代碼示例

    在圖像處理領(lǐng)域,圖像分割是一項基礎(chǔ)且關(guān)鍵的技術(shù),它涉及到將圖像劃分為若干個具有特定屬性的區(qū)域,本文將通過一個實踐項目,展示如何使用Python編程語言,結(jié)合OpenCV庫,對一張玫瑰花的圖片進行圖像分割,需要的朋友可以參考下
    2025-01-01
  • Python通過dxfgrabber庫實現(xiàn)獲取CAD信息

    Python通過dxfgrabber庫實現(xiàn)獲取CAD信息

    dxfgrabber?是一個?Python?庫,用于讀取和解析?AutoCAD?DXF(Drawing?Exchange?Format)文件,本文就來教教大家如何利用dxfgrabber庫實現(xiàn)獲取CAD信息吧
    2023-06-06
  • 關(guān)于python返回值return用法詳解

    關(guān)于python返回值return用法詳解

    這篇文章主要介紹了python中的return關(guān)鍵字,包括其含義、作用、默認返回值、不同整數(shù)值的含義、返回值的類型、函數(shù)作為參數(shù)傳遞以及在類方法中的特殊情況,需要的朋友可以參考下
    2024-12-12
  • python imutils包基本概念及使用

    python imutils包基本概念及使用

    python imutils包可以很簡潔的調(diào)用opencv接口,輕松實現(xiàn)圖像的平移,旋轉(zhuǎn),縮放,骨架化等操作,對python imutils包基本概念及使用方法感興趣的朋友一起看看吧
    2021-07-07
  • Python統(tǒng)計詞頻的幾種方法小結(jié)

    Python統(tǒng)計詞頻的幾種方法小結(jié)

    本文主要介紹了Python統(tǒng)計詞頻的幾種方法小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論

丰宁| 盐亭县| 和平县| 保靖县| 商南县| 南涧| 民和| 永康市| 广昌县| 晋江市| 菏泽市| 连州市| 郴州市| 云霄县| 辉南县| 永清县| 西吉县| 年辖:市辖区| 建始县| 南城县| 滕州市| 双鸭山市| 太谷县| 历史| 东城区| 楚雄市| 开江县| 兴城市| 始兴县| 唐海县| 平潭县| 临江市| 峨眉山市| 枞阳县| 贞丰县| 屯留县| 德安县| 乐业县| 冷水江市| 旬邑县| 辽宁省|