亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法在 Python 中標記類?

有沒有辦法在 Python 中標記類?

慕絲7291255 2021-12-29 10:59:48
假設我在 Python 模塊中有一堆類。我想要一些方法來標記這些類,也許使用裝飾器之類的東西,這樣我就可以從我的模塊中只訪問這些類。例如:class One:    ...@markedclass Two:    ...@markedclass Three:    ...我真正想做的是在運行時以某種方式動態地將這些標記的類放入列表中。像這樣的東西:marked_classes = [Two, Three]在 Python 中執行此操作的理想方法是什么?謝謝。注意:它不一定是裝飾器。我只是添加了那部分來解釋這個問題。編輯:要記住的重要一點是,您不必知道類名稱即可實際獲取標記類的列表。所以類似的事情marked_classes.append(Two)顯然是行不通的。
查看完整描述

3 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

創建一個里面有一個列表的類裝飾器。在裝飾器中,您可以獲取類并將其添加到列表中。

模塊加載完成后,您應該在列表中擁有這些類。


查看完整回答
反對 回復 2021-12-29
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

裝飾器編寫起來相當簡單。


marked_classes = []



def mark(cls):

    marked_classes.append(cls)

    return cls



class One:

    ...



@marked

class Two:

    ...



@marked

class Three:

    ...


查看完整回答
反對 回復 2021-12-29
?
藍山帝景

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


查看完整回答
反對 回復 2021-12-29
  • 3 回答
  • 0 關注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號