【发布时间】:2021-10-25 13:21:12
【问题描述】:
我必须在我的项目中处理一堆文件夹/文件路径。当我在项目中多次使用它们时,我选择将它们存储在变量中。所以,如果需要更改路径,我只需要更改变量值即可。
我目前将 pathlib.Path 对象存储在枚举中,如下例所示。
from pathlib import Path
from enum import Enum
class Paths(Enum):
CONTENTS = Path('path/to/contents/')
FOLDER_IN_CONTENTS = CONTENTS / 'some_folder'
IMAGES = Path('path/to/images')
FILE_IN_IMAGES = IMAGES / 'some_file'
有些事情告诉我,这不是枚举类的好用处,尽管我无法真正解释原因(可能是因为我从未见过这样的事情)。如果是这样,存储这些文件/文件夹路径的最佳方式是什么?
【问题讨论】:
-
我认为这种方法本身没有问题。来自PEP 435:枚举的属性可用于定义一组不可变的、相关的常量值,这些常量值可能具有语义含义,也可能不具有语义含义。这在一定程度上取决于您如何使用您的项目。您还可以将值存储在 config/JSON 文件中,然后读取文件并将值分配给变量。