Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để tải động một lớp Python?


Không có hàm khả dụng nào lấy tên lớp đủ điều kiện và trả về lớp. Tuy nhiên, chúng tôi có thể xác định một hàm có chức năng này.

Ví dụ

Đoạn mã sau thuộc một hàm như vậy.

def get_class( s ):
    parts = s.split('.')
    module = ".".join(parts[:-1])
    n = __import__( module )
    for comp in parts[1:]:
        n = getattr(m, comp)          
    return n

Một ví dụ sử dụng của hàm đó

import datetime
def get_class( cls ):
    parts = cls.split('.')
    module = ".".join(parts[:-1])
    m = __import__( module )
    for comp in parts[1:]:
        m = getattr(m, comp)
    return m
print get_class('datetime.datetime').now()

Đầu ra

Điều này cho kết quả

2018-01-23 14:04:09.843000