Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะแปลงสตริงเป็นวัตถุคลาส Python ได้อย่างไร


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