无法导入 Python Class

Can't Import Python Class

我在 Python 导入时遇到问题。我创建了一个模块,以便用一条语句方便地在模块内部导入一些 classes。我把我所有的导入都放在那个模块的初始化中,但它似乎不起作用。

maindir\
- driver.py
- Utility\
  - __init__.py
  - UtilityClasses.py

我的文件夹结构如上所示。 在 UtilityClasses 中,我创建了一个 class,名为 MyClass。

在 Utility 文件夹中的初始化文件中,我有这样的代码:

import UtilityClasses
from UtilityClasses import MyClass

在 driver.py 里面我有这样的代码:

import Utility
myVar = MyClass(param1)

但是,当我 运行 这样做时,我收到一条错误消息,告诉我未定义名称 MyClass。

__init__.py中,你可以做到

from UtilityClasses import *
from SomeOtherFile import *

这将从 UtilityClasses.pySomeOtherFile.py 导入所有内容。

但是你还是要通过模块名才能访问

更新:您可以像这样访问所有内容

driver.py中:

from Utility import *

a = MyClass()
b = ClassInSomeOtherFile()

您的代码

import Utility
myVar = MyClass(param1)

当然行不通 -- MyClass 没有被提及,也不会神奇地凭空出现。显式优于隐式:

from Utility import MyClass
myVar = MyClass(param1)

应该很有魅力!