簡體   English   中英

python 3 局部變量定義在包圍 scope 賦值前引用

[英]python 3 local variable defined in enclosing scope referenced before assignment

我已經聲明了我需要在 class 中的 function 中訪問和修改的全局變量。這個 function 一旦被調用就會無限期地循環,並且 stream 數據會通過它。 我需要能夠在 function 中使用 xyz 變量,並在 stream_data 通過時重新定義它們的值。 我當前的代碼如下所示:

x = 10
y = 8
z = 2
class Program():
    def function(stream_data):
        while True:
            try:               
                a = stream_data['data']
                if (a - z) > y:
                    y = a - z
                else:
                    pass
            except:
                continue

我收到錯誤“在賦值前引用的第 7 行的 scope 中定義的局部變量 y”。 我如何格式化此代碼,以便在首次調用 function 時使用全局變量,然后在每次后續調用時使用它重新定義的變量 y ? 謝謝我是編碼新手,真的需要幫助!

采用

global x, y, z 使用全局變量

像這樣-

x = 10
y = 8
z = 2
class Program():
    def function(stream_data):
        while True:
            try:
                global x,y,z
                a = stream_data['data']
                if (a - z) > y:
                    y = a - z
                else:
                    pass
            except:
                continue

或者,您也可以在 function 中初始化 x、y、z。

讓我知道這是否有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM