全域性變數與類似配置檔案的模組檔案

2022-03-12 22:38:31 字數 1331 閱讀 2245

#

-*- coding: cp936 -*-

#python 27

#xiaodeng

#全域性變數

#重點問題:

1)函式呼叫的先後順序導致結果不同

2)使用類似於配置檔案的模組檔案控制全域性變數和控制變數的修改等操作

在檔案之間進行通訊的最好辦法是通過呼叫函式,傳遞引數,然後得到返回值

雖然一定程度上,會增加**量,但是可讀性和維護性上會變得非常友好

當人們在閱讀第乙個檔案時,就會看到這個函式,就知道這是乙個介面(接入點),並知道將改變變數x的值

當然,我們依然還是要最小化的修改檔案之間的變數,盡可能的保持變數的穩定,不隨便修改變數的值#案例

x=100

deffunc1():

global

x x=88

print

xdef

func2():

global

x x=77

printx#

呼叫順序不同其結果不同

#x的值取決於函式的呼叫先後順序,因為這2個函式是耦合在一起的

print

xfunc1()

func2()

printx#

結論:#

全域性變數使得程式更難以理解和使用,所以盡可能的控制使用全域性變數

eg:

#test.py

name='

xiaodeng

'import

test

print

test.name

#一些程式情況下,會委任乙個單一的模組檔案去定義所需要使用到的所有全域性變數--->變數名封裝思想

#但是這裡又會出現乙個問題,導致檔案之間的依賴性增強,可以考慮在原始碼中新增備註。

#目前最佳辦法:

eg:

#fisrt.py

x=99

defsetx(new):

global

x x=new

#test.py

import

fisrt

fisrt.setx(88)

print

x

#案例說明:

在檔案之間進行通訊的最好辦法是通過呼叫函式,傳遞引數,然後得到返回值

雖然一定程度上,會增加**量,但是可讀性和維護性上會變得非常友好

當人們在閱讀第乙個檔案時,就會看到這個函式,就知道這是乙個介面(接入點),並知道將改變變數x的值

當然,我們依然還是要最小化的修改檔案之間的變數,盡可能的保持變數的穩定,不隨便修改變數的值

python通過配置檔案共享全域性變數

在使用python編寫的應用的過程中,有時會遇到多個檔案之間傳遞同乙個全域性變數的情況,此時通過配置檔案定義全域性變數是乙個比較好的選擇。首先配置config.py模組,config需要設定get 和set 的方法提供對外的介面。config.py class global var 需要定義全域性變...

全域性變數與模組化

某模組提供給其它模組呼叫的外部函式及資料需在.h 中檔案中冠以extern 關鍵字宣告 這句話在上面的例子中已經有體現,即某模組提供給其它模組呼叫的外部函式和全域性變數需在.h 中檔案中冠以extern 關鍵字宣告,下面重點說一下全域性變數的使用。使用模組化程式設計的乙個難點 相對於新手 就是全域性...

static全域性變數與普通的全域性變數

一 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是...