Skip to main content
 首页 » 编程设计

python之使用 from-import 语句并且仍然需要在 Python 3 中输入类名

2025年05月04日9qq号

我在同一个目录中有三个 Python 模块。其中两个文件是我试图访问的类。我的印象是,如果我的一个模块(称为枚举)中有以下代码:

class Directions: 
 
    UP = 1 
    DOWN = 2 
    LEFT = 3 
    RIGHT = 4 
 
class Colors: 
    RED = [255, 0, 0] 

我可以使用以下语句:

from enum import Directions 
from enum import Colors 

能够像这样访问类成员:

foo = DOWN 
bar = RED 

但是,我必须这样访问它们

foo = Directions.DOWN 
bar = Colors.RED 

否则会产生错误。有什么方法可以使用 import/from-import 语句来访问我的类成员而不必指定类名?或者我应该以不同的方式组织我的“枚举”吗?

请您参考如下方法:

除了类定义内部之外,不可能从任何地方的代码直接访问类成员。

尝试将枚举模块更改为以下内容:

__all__ = ['UP', 'DOWN', 'LEFT', 'RIGHT', 'RED'] 
 
# Directions 
UP = 1 
DOWN = 2 
LEFT = 3 
RIGHT = 4 
 
# Colors 
RED = [255, 0, 0] 

然后在您想要访问这些变量的模块中使用 from enum import *。

在这里定义 __all__ 不是必需的,但无论如何使用它是一种很好的做法。它控制使用 from foo import * 时导入的名称。