[英]how can I change the global variable in each function without the functions affecting each other in Python?
我的全局變量count=0
正在下面的函數(方法)中更改:
def Counter(counter,boolean=False)->int:
if boolean:
counter+=1
else:
counter=0
return counter
其他函數使用Counter
函數:
def func1():
global count
count=Counter(count,True)
print("func1:",count)
def func2():
global count
count=Counter(count,True)
print("func2:",count)
當像for
循環一樣再次運行這些函數時
for _ in range(3):
func1()
func2()
輸出是:
func1:1
func2:2
func1:3
func2:4
func1:5
func2:6
但是輸出必須是這樣的:
func1:1
func2:1
func1:2
func2:2
func1:3
func2:3
我研究了不同的方法,但找不到答案。 我怎樣才能做到這一點?
為什么以前的代碼不起作用?
global
關鍵字使計數器變量可從兩個函數訪問。
使用global
變量是一種不好的做法,不要這樣做。
如何實現你所要求的?
下面的單詞為每個函數分配一個計數器,在每次調用時修改它。
def func1():
func1.count+=1
print("func1:", func1.count)
def func2():
func2.count += 1
print("func1:", func2.count)
func1.count=0
func2.count=0
for _ in range(3):
func1()
func2()
更多關於
你問的是如何在python函數中使用靜態變量。
術語“函數靜態變量”是指可由函數訪問和擁有的變量。
Python 不以直接的方式支持靜態變量,例如在 C# 或 Java 等語言中,但是在這個線程中還有其他漂亮的解決方案,這些解決方案更復雜並且需要使用裝飾器- 所以我沒有提到他們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.