python全域性變數

2022-06-23 10:21:09 字數 1615 閱讀 9252

import

multiprocessing

from multiprocessing.managers import

basemanager

import

threading

#鎖可以通過global也可以在process中傳無所謂

share_lock =threading.lock()

#定義乙個要共享例項化物件的類

class

test():

def__init__

(self):

self.test_list = ["

start flag"]

deftest_function(self,arg):

defprint_test_list(self):

for item in

self.test_list:

print(f"")

defsub_process(process_name,obj):

global

share_lock

share_lock.acquire()

obj.test_function(f""

) share_lock.release()

obj.print_test_list()

pass

defmain_process():

#如果是想註冊open方法這樣操作

#manager = basemanager()

## 一定要在start前註冊,不然就註冊無效

#manager.register('open', open)

#manager.start()

#obj = manager.open("1.txt","a")

#為了更加直接我們直接以乙個test類的例項化物件來演示

manager =basemanager()

#一定要在start前註冊,不然就註冊無效

manager.register('

test

', test)

manager.start()

obj =manager.test()

process_list =

#建立程序1

process_name = "

process 1

"tmp_process = multiprocessing.process(target=sub_process,args=(process_name,obj))

#建立程序2

process_name = "

process 2

"tmp_process = multiprocessing.process(target=sub_process, args=(process_name,obj))

#啟動所有程序

for process in

process_list:

process.start()

for process in

process_list:

process.join()

if__name__ == "

__main__":

main_process()

python 全域性變數

應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了 a的值,程式設計師乙同時也要使用 a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...

Python 全域性變數

應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了 a的值,程式設計師乙同時也要使用 a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...

python全域性變數

python中global關鍵字主要作用是宣告變數的作用域。在c語言中,由於變數一定是先宣告,後使用,所以我們可以清楚的知道,現在使用的變數是全域性還是區域性,比如 cpp view plain copy inta 5 void test void void test1 void void main...