Python 中的動態類別載入:Java 的Class.forName() 的替代方案
在Java 中,Class.forName()方法啟用在運行時動態載入類別。 Python 以其固有的靈活性,提供了更簡單的方法來完成此任務。
Python 中的動態類別載入
與 Java 不同,Python 提供了對內省和動態的原生支援類別載入。內建的 import 函數可用於動態導入模組,然後使用 getattr() 函數存取該模組中的特定類別。
範例函數
這是模仿Java 的Class.forName() 功能的範例函數:
<code class="python">def get_class(kls): parts = kls.split('.') module = ".".join(parts[:-1]) m = __import__(module) for comp in parts[1:]: m = getattr(m, comp) return m</code>
用法
載入和實例化動態類,您可以使用下列步驟序列:
例如,以下程式碼示範了用法:
<code class="python">D = get_class("datetime.datetime") assert D == datetime.datetime a = D(2010, 4, 22) assert a == datetime.datetime(2010, 4, 22, 0, 0)</code>
其他注意事項
與Java 不同,Class.如果找不到類,forName() 方法會拋出ClassNotFoundException,Python 沒有為這種情況提供特定的異常。相反,如果無法匯入模組,函數 import 將傳回 None。
以上是如何在 Python 中實作動態類別載入:Java Class.forName() 的替代方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!