ให้สตริงเป็นอินพุตของผู้ใช้ในฟังก์ชัน python ฉันต้องการเอาคลาสอ็อบเจ็กต์ออกมา หากมีคลาสที่มีชื่อนั้นในเนมสเปซที่กำหนดไว้ในปัจจุบัน
ตัวอย่าง
class Foobar: pass print eval("Foobar") print type(Foobar)
ผลลัพธ์
__main__.Foobar <type 'classobj'>
อีกวิธีหนึ่งในการแปลงสตริงเป็นอ็อบเจกต์คลาสมีดังนี้
ตัวอย่าง
import sys class Foobar: pass def str_to_class(str): return getattr(sys.modules[__name__], str) print str_to_class("Foobar") print type(Foobar)
ผลลัพธ์
__main__.Foobar <type 'classobj'>