如何在另一个 python 文件中导入屏幕类?
Posted
技术标签:
【中文标题】如何在另一个 python 文件中导入屏幕类?【英文标题】:How to import a screen class in another python file? 【发布时间】:2020-04-28 20:41:46 【问题描述】:我正在构建一个 kivy 应用程序,我正在使用 ScreenManager 从一个窗口转到另一个窗口。如果我将屏幕管理器中使用的所有类都放在同一个 python 文件中,则该程序正在运行,如下所示:
sm = ScreenManager()
sm.add_widget(Login(name='login'))
sm.add_widget(Account(name='create_account'))
sm.add_widget(AfterLogin(name='after_login'))
但我希望每个类都有一个单独的 python 文件。如何导入类并使屏幕管理器工作?我试图创建“login_after.py”,现在只有模板:
class AfterLogin(Screen):
pass
并像这样导入类:
import login_after
sm.add_widget(login_after.AfterLogin(name='after_login'))
但这会触发以下错误:
AttributeError: module 'login_after' has no attribute 'AfterLogin'
如何解决?
【问题讨论】:
【参考方案1】:也许这会起作用?
from login_after import AfterLogin
sm.add_widget(AfterLogin(name='after_login'))
【讨论】:
这行得通,但问题是它让我只在使用它的方法中导入 AfterLogin,而不是在*** python 文件中。这可以被认为是错误吗? @iulianaiuliana 您必须在将使用它的文件的顶部导入它。它是 Python 的东西;o) @iulianaiuliana 如果您只能在函数/方法中导入,但不能在文件顶部导入,那么这听起来像是循环导入。您是否还导入了login_after
中的主文件?
是的,问题是我正在导入整个 python 文件,而不仅仅是使用的类。在另一个 python 文件中,我也在导入第一个文件。感谢您指出问题!
@moro_92 如果你觉得我的回答有帮助,那么你可以考虑accept it,让其他人也看到它.. ;o)以上是关于如何在另一个 python 文件中导入屏幕类?的主要内容,如果未能解决你的问题,请参考以下文章