假设我在 Python 模块中有一堆类。我想要一些方法来标记这些类,也许使用装饰器之类的东西,这样我就可以从我的模块中只访问这些类。例如:class One: ...@markedclass Two: ...@markedclass Three: ...我真正想做的是在运行时以某种方式动态地将这些标记的类放入列表中。像这样的东西:marked_classes = [Two, Three]在 Python 中执行此操作的理想方法是什么?谢谢。注意:它不一定是装饰器。我只是添加了那部分来解释这个问题。编辑:要记住的重要一点是,您不必知道类名称即可实际获取标记类的列表。所以类似的事情marked_classes.append(Two)显然是行不通的。
3 回答

撒科打诨
TA贡献1934条经验 获得超2个赞
装饰器编写起来相当简单。
marked_classes = []
def mark(cls):
marked_classes.append(cls)
return cls
class One:
...
@marked
class Two:
...
@marked
class Three:
...

蓝山帝景
TA贡献1843条经验 获得超7个赞
我建议将您的课程放在包内的模块中
/package
__init__.py
module.py
然后在您的init .py 文件中将您想要“公开”的类分配给所有变量列表
__init__.py:
from .module import Two, Three
__all__ = [Two, Three]
然后在调用它时:
script.py
from package import *
# or
from package import Two, Three
添加回答
举报
0/150
提交
取消