python做中學(一)全局變量的用法


  一段時間沒有使用python來寫代碼,就發現以前學習的很多語法都忘了。看來還是當初這方面的項目做的好不夠多,沒有系統性的運用和學習,導致了很多語法不能順手拈來。在接下來的這個項目中,

一定要把遇到的一些python知識不熟悉的地方還有遺忘的重新梳理一下,對python要達到靈活運用的境界,不能單純是能敲代碼,要達到學,做,教的三者合一。就是在做中學,學中做,做中教,教中學的

境界。

 

  全局變量的作用域:

  一般在函數體外定義的變量成為全局變量,在函數內部定義的變量稱為局部變量。全局變量所有作用域都可用,局部變量只能在本函數可用,變量的使用順序是,局部變量 > 全局變量, 也就是說:優先使用局部變量

 

  global關鍵字:

  為了解決函數內使用全局變量的問題,python增加了global關鍵字, 利用它的特性, 可以指定變量的作用域。

global關鍵字的作用:聲明變量var是全局的

 

     實例一:函數內賦值不能改變全局變量值:

 1 global val
 2 val = 10
 3 
 4 def test1():
 5         global val
 6         val = 5
 7         print('test1 global val:',val)
 8 
 9 def test2():
10         val = 8
11         print('test2 global val:',val)
12 class Test():
13         def __init__(self):
14                 #global val
15                 val = 5
16                 #zoo()
17                 #xy()
18         def connect(self):
19                 print("class in connect global val:",val)
20                 if 5 == val:
21                         print("global val is:",val)
22 
23 if __name__=="__main__":
24         Test().connect()
View Code

 

  運行結果:

class in connect global val: 10

  可以看出,函數內賦值並不能改變全局變量的值,所以需要global關鍵字

 

  實例二:全局變量值改變必須要有global關鍵字:

  沈德符

global val
val = 10

def test1():
        global val
        val = 5
        print('test1 global val:',val)

def test2():
        val = 8
        print('test2 global val:',val)
class Test():
        def __init__(self):
                #global val
                val = 5
                test1()
                test2()
        def connect(self):
                print("class in connect global val:",val)
                if 5 == val:
                        print("global val is:",val)

if __name__=="__main__":
        Test().connect()
View Code

   測試結果:

  test1 global val: 5
  test2 global val: 8
  class in connect global val: 5
  global val is: 5

可以看出,全局變量的值改變,必須要有global關鍵字。不然就被當成了局部變量。這點一定要記好。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM