我是靠谱客的博主 聪明斑马,这篇文章主要介绍python 动态加载类,类似java的class.forName,现在分享给大家,希望可以做个参考。

import importlib

importlib是import的python实现

1、获取模块对象

m1 = importlib.import_module("sites.sites_pybuild")

print(m1)

输出:

<module 'sites.sites_pybuild' from 'D:Documents and Settingsbinliuworkspacesbp_2.0sitessites_pybuild.py'>


2、获取类对象

aclass = getattr(m1, "sites_pybuild")

print(aclass)

输出:

<class 'sites.sites_pybuild.sites_pybuild'>


3、实例化对象

p = aclass("test")

相当于直接使用p = sites.sites_pybuild.sites_pybuild("test")


下面的文章也可以实现反射,主要思想是先导入module,然后使用globals()["classname"]获得类定义,再使用此类定义来初始化对象。

http://blog.csdn.net/lokibalder/article/details/3459722


最后

以上就是聪明斑马最近收集整理的关于python 动态加载类,类似java的class.forName的全部内容,更多相关python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部