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

จะโหลดคลาส Python แบบไดนามิกได้อย่างไร?


ไม่มีฟังก์ชันที่ใช้ชื่อคลาสแบบเต็มและส่งคืนคลาส อย่างไรก็ตาม เราสามารถกำหนดฟังก์ชันที่มีฟังก์ชันนี้ได้

ตัวอย่าง

โค้ดต่อไปนี้เป็นฟังก์ชันดังกล่าว

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

ตัวอย่างการใช้งานฟังก์ชันหนึ่ง

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()

ผลลัพธ์

ให้ผลลัพธ์

2018-01-23 14:04:09.843000