Python's Flexible Reflection: Setara dengan Java's Class.forName()
Keupayaan pantulan Python adalah jauh lebih serba boleh dan mesra pengguna berbanding Java's Class.forName(). Walaupun mungkin tidak ada persamaan langsung yang tepat, memahami mekanisme pantulan Python membolehkan anda mencapai kefungsian yang serupa.
Pendekatan Refleksi Python
Refleksi Python menggunakan beberapa teknik penting:
Fungsi Tersuai : get_class
Untuk menyediakan fungsi yang setara dengan Class.forName(), fungsi Python berikut boleh digunakan:
<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>
Contoh Penggunaan
Fungsi ini membolehkan anda mendapatkan rujukan kelas daripada nama yang layak sepenuhnya:
<code class="python">>>> D = get_class("datetime.datetime") >>> D <type 'datetime.datetime'> >>> D.now() datetime.datetime(2009, 1, 17, 2, 15, 58, 883000)</code>
Cara ia Berfungsi
Kesimpulan
Refleksi Python menawarkan cara yang berkuasa dan fleksibel untuk memanipulasi kelas dan objek. Walaupun ia berbeza daripada Class.forName() Java, ia menyediakan pendekatan yang lebih mudah disesuaikan dan kaya dengan ciri untuk mencapai matlamat yang serupa.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Setara dengan Java\'s Class.forName() dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!