Pemuatan Kelas Dinamik dalam Python: Alternatif kepada Class.forName() Java
Di Java, kaedah Class.forName() mendayakan pemuatan dinamik kelas pada masa jalan. Python, dengan fleksibiliti yang wujud, menawarkan pendekatan yang lebih mudah untuk menyelesaikan tugas ini.
Pemuatan Kelas Dinamik dalam Python
Tidak seperti Java, Python menyediakan sokongan asli untuk introspeksi dan dinamik pemuatan kelas. Fungsi import terbina dalam boleh digunakan untuk mengimport modul secara dinamik, diikuti dengan menggunakan fungsi getattr() untuk mengakses kelas tertentu dalam modul tersebut.
Fungsi Contoh
Berikut ialah contoh fungsi yang meniru fungsi Java's 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>
Penggunaan
Untuk memuatkan dan membuat seketika kelas secara dinamik, anda boleh menggunakan urutan langkah berikut:
Sebagai contoh, kod berikut menunjukkan penggunaan:
<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>
Pertimbangan Tambahan
Tidak seperti Java, di mana Kelas. kaedah forName() membuang ClassNotFoundException jika kelas tidak ditemui, Python tidak memberikan pengecualian khusus untuk kes ini. Sebaliknya, fungsi import mengembalikan Tiada jika modul tidak boleh diimport.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pemuatan Kelas Dinamik dalam Python: Alternatif kepada Class.forName() Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!