[英]How do I import all global variables into a function - Python
我正在嘗試將所有全局變量導入到多個函數中,如果我可以調用這樣的函數,那就太好了:
def importGlobals():
global name, version, edition, fullName, method, printSize, printed, oldPrint, print
像這樣
def myFunction():
importGlobals()
print(name) # name is a global variable
除了將importGlobals
的內部復制到我需要全部使用的每個函數之外,還有其他方法嗎? 上面的解決方案不起作用...這也不起作用:
def importGlobals():
global name, version, edition, fullName, method, printSize, printed, oldPrint, print
def myFunction():
print(name)
importGlobals()
myFunction()
任何幫助將不勝感激。
這不是一個好主意。 很難,因為它應該很困難。 如果您希望多個函數可以訪問共享狀態,則應使用一個類。
class GlobalState:
# avoid overloading print
def __init__(name, version, edition, fullName, method, printSize, printed, oldPrint, _print):
self.name = name
self.version = version
...
def myFunction(self):
print(self.name)
print(self.version)
這是您想要做的慣用方式。
正如我在評論中所述,訪問變量的另一種方法是在一個單獨的py文件中實現它們,並將它們導入到要訪問它們的文件中,如下所示;
主程序
import global_variables
def myFunction():
print(global_variables.name)
global_variables.name = "David"
print(global_variables.name)
def myOtherFunction():
print(global_variables.name)
global_variables.name = "Aaron"
print(global_variables.name)
myFunction()
myOtherFunction()
global_variables.py
# you can use any type for your variables and still access them in another module
name = "John"
version = {"Version":1.0} # access version by global_variables.version["Version"]
edition = ["Edition1"] # access edition by global_variables.edition[0]
fullName = "John Smith"
value = 5.33
輸出:
John
David
David
Aaron
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.