ให้สตริงเป็นอินพุตของผู้ใช้ในฟังก์ชัน 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'>