importlib模块 反射字符串的对象

 

通过 importlib模块 反射字符串的对象
Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux
Django 1.10.4
>>> from crm import models

#使用importlib模块的import_module方法就可以实现动态的导入
>>> import importlib  

>>> models.Course._meta
<Options for Course>
>>> models.Course._meta.verbose_name
'course'
>>> models.Course._meta.model_name
'course'
>>> models.Customer._meta.verbose_name
'客户信息'
>>> 
>>> 
>>> models.Customer._meta
<Options for Customer>
>>> models.Customer
<class 'crm.models.Customer'>
>>> m = models.Customer
>>> importlib.import_module('crm')
<module 'crm' from '/home/ligq/python/django/mycrm/crm/__init__.py'>
>>> importlib.import_module('crm.models')
<module 'crm.models' from '/home/ligq/python/django/mycrm/crm/models.py'>
#反射出来字符串'crm.models' 的对象<class 'crm.models.UserProfile'>
>>> mc = importlib.import_module('crm.models')
>>> mc.UserProfile
<class 'crm.models.UserProfile'>

#这时候就可以操作这个对象了
>>> mc.UserProfile.objects.all()
<QuerySet [<UserProfile: 销售>, <UserProfile: 学生>, <UserProfile: 管理员>]>

 

posted @ 2017-01-08 11:45  noube  阅读(222)  评论(0编辑  收藏  举报