簡體   English   中英

如何從def永久更改全局變量

[英]How to permanently change a global variable from a def

我在更新和調用全局變量的值時遇到問題。

我曾嘗試在互聯網上查找類似的帖子和文章。 還本地化一個似乎運行正常的小測試......但是在我的整體代碼的這一部分中它不起作用。

WEEK_ONE_REFINED = ""

def change_it():
    global WEEK_ONE_REFINED
    WEEK_ONE_REFINED = week_one_refined.strftime("%d/%m/%Y")

def print_it():
    print (WEEK_ONE_REFINED)

我有一個名為 WEEK_ONE_REFINED 的全局變量。 我按下一個按鈕並調用change_it。 然后我按下另一個按鈕並調用 print_it 但它打印的只是原始的 "" 值。 不是更新的值。

為什么它需要是全球性的? 這樣會更好:

def change_it(week_str):
    return week_str.strftime("%d/%m/%Y")

def print_it(week):
    print (week)

week = change_it("1/2/2019")
print_it(week)

你的代碼是正確的。 如果您正在打印原始空值,則會發生以下兩種情況之一

  • change_it之前不叫print_it()可能是按鈕不叫)
  • strftime表達式提供一個空字符串(不太可能)

乍一看,您的代碼似乎是正確的。 我會說你的問題是week_one_refined.strftime("%d/%m/%Y")拋出異常,並且變量永遠不會更新。

抱歉各位,感謝你們的幫助。

該功能鏈接到一個復選框,並且只有在單擊該復選框時才會起作用。 一旦我開始單擊復選框,變量就會更新。

我現在已經修復了它,以便無論復選框是否被激活,全局變量都會更新。

感謝你的幫助。

暫無
暫無

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

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