Cho một chuỗi làm đầu vào của người dùng cho một hàm python, tôi muốn lấy một đối tượng lớp ra khỏi nó nếu có một lớp có tên đó trong không gian tên được xác định hiện tại.
Ví dụ
class Foobar: pass print eval("Foobar") print type(Foobar)
Đầu ra
__main__.Foobar <type 'classobj'>
Một cách khác để chuyển đổi một chuỗi thành đối tượng lớp như sau
Ví dụ
import sys class Foobar: pass def str_to_class(str): return getattr(sys.modules[__name__], str) print str_to_class("Foobar") print type(Foobar)
Đầu ra
__main__.Foobar <type 'classobj'>