假設我在 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
提交
取消