如何解决从类中导入变量而不创建该类的对象
我有2个文件,one.py和two.py , one.py 是我要运行的 main 文件启动程序,我想从GUI类中将一个变量从one.py访问到另一个文件中,而不创建该类的对象,因为那样会创建另一个窗口
这可能吗?
如果是这样,我可以修改变量,然后将其发送回one.py
文件one.py:
import tkinter
class GUI(tkinter.Tk):
def __init__(self):
super().__init__()
self.var = 'value'
self.mainloop()
if __name__ == '__main__':
app = GUI()
文件two.py:
from one import GUI
print(GUI().var) #this creates another window,i dont want that
解决方法
您的问题是您创建了实例属性,而不是类属性。 today = datetime.now().date()
yesterday = today - timedelta(days=1)
start_date = date(2020,8,10)
end_date = today
day_count = (end_date - start_date).days
day = timedelta(days=1)
date = start_date
for i in range(day_count):
date += day
fields = [
'campaign_name','reach','impressions','frequency','clicks','spend',]
params = {
'level': 'campaign','filtering': [],'breakdowns': [],'time_range': {'since': str(date),'until': str(date)},'time_increment': '1',"limit": 1000}
results = my_account.get_insights(fields=fields,params=params)
是针对您创建的每个实例分别创建的。因此,您不能独立访问它:在实例化var
之前,该变量不存在。
您想要的是一个 class 属性。您可以在课程级别创建它:
GUI
这将创建class GUI(tkinter.Tk):
GUI_var = 'value'
def __init__(self):
super().__init__()
self.mainloop()
print (GUI.GUI_var)
的一个实例,该实例在定义类时进行了初始化。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。