亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python中動態創建類實例的方法

2020-02-23 04:28:28
字體:
來源:轉載
供稿:網友

簡介

在Java中我們可以通過反射來根據類名創建類實例,那么在Python我們怎么實現類似功能呢?

其實在Python有一個builtin函數import,我們可以使用這個函數來在運行時動態加載一些模塊。如下:

def createInstance(module_name, class_name, *args, **kwargs):  module_meta = __import__(module_name, globals(), locals(), [class_name])  class_meta = getattr(module_meta, class_name)  obj = class_meta(*args, **kwargs)  return obj

例子

首先我們建一個目錄 my_modules,其中包括三個文件

* init.py: 模塊文件
* my_module.py: 測試用的模塊
* my_another_module: 另一個測試用的模塊

my_module.py

from my_modules.my_another_module import *class MyObject(object):  def test(self):    print 'MyObject.test'    MyObject1().test()    MyObject2().test()    MyAnotherObject().test()class MyObject1(object):  def test(self):    print 'MyObject1.test'class MyObject2(object):  def test(self):    print 'MyObject2.test'

my_another_module.py

class MyAnotherObject(object):  def test(self):    print 'MyAnotherObject.test'

test.py

def createInstance(module_name, class_name, *args, **kwargs):  module_meta = __import__(module_name, globals(), locals(), [class_name])  class_meta = getattr(module_meta, class_name)  obj = class_meta(*args, **kwargs)  return objobj = createInstance("my_modules.my_module", "MyObject")obj.test()MyObject.testMyObject1.testMyObject2.testMyAnotherObject.test

pyinstaller集成

對于使用pyinstaller打包的應用程序,如果使用上面的代碼,運行打包后的程序會出現下面的錯誤

Traceback (most recent call last): File "test.py", line 12, in <module>  obj = createInstance("my_modules.my_module", "MyObject") File "test.py", line 7, in createInstance  module_meta = __import__(module_name, globals(), locals(), [class_name])ImportError: No module named my_modules.my_moduleFailed to execute script test

這里錯誤的原因是 pyinstaller 在打包分析類的時候沒有分析到 my_modules 下面的模塊,所以運行報錯。

解決辦法一:

在 test.py 中把 my_modules 下的模塊手動 import,見下面代碼中的第一行。這種方法最簡單,但是顯然不太好。

import my_modules.my_moduledef createInstance(module_name, class_name, *args, **kwargs):  module_meta = __import__(module_name, globals(), locals(), [class_name])  class_meta = getattr(module_meta, class_name)  obj = class_meta(*args, **kwargs)  return objobj = createInstance("my_modules.my_module", "MyObject")obj.test()

解決辦法二:

在使用 pyinstaller 打包的時候,指定 “–hidden-import”,如下

pyinstaller -D --hidden-import my_modules.my_module test.py            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品视频中文字幕| 一区二区欧美日韩视频| 久久成人在线视频| 欧美日韩美女在线| 国产丝袜一区二区三区| 国产精品久久久久久久久久新婚| 色七七影院综合| 国内免费久久久久久久久久久| 中文字幕一区二区三区电影| 97av在线影院| 精品久久久久国产| 亚洲综合av影视| 亚洲国产精品va在看黑人| 久久久精品一区二区三区| 伦理中文字幕亚洲| 欧美黄色www| 久久久精品国产亚洲| 成人激情春色网| 九九热这里只有精品免费看| 亚洲精品久久久久中文字幕欢迎你| 欧美在线一级va免费观看| 在线精品国产欧美| 国产午夜精品美女视频明星a级| 亚洲美女av黄| 亚洲国产精品va在看黑人| 亚洲精品福利视频| 国产成人福利视频| 热久久美女精品天天吊色| 91精品视频在线| 欧美综合一区第一页| 亚洲第一福利视频| 欧美黄色片在线观看| 国产亚洲欧洲黄色| 91精品国产综合久久香蕉922| 精品国产电影一区| 麻豆国产va免费精品高清在线| 一区二区三区无码高清视频| 日韩在线观看免费全集电视剧网站| 国产精品美女www| 色久欧美在线视频观看| 欧美精品videosex性欧美| 国产精品久久久久久亚洲影视| 4438全国成人免费| 久久影院模特热| 日韩毛片在线看| 亚洲精品自拍第一页| 亚洲精品久久久久| 亚洲成av人片在线观看香蕉| 91地址最新发布| 欧美激情第三页| 亚洲免费福利视频| 久久乐国产精品| 欧美插天视频在线播放| 精品久久久久久久久中文字幕| 成人激情综合网| 91国偷自产一区二区三区的观看方式| 亚洲人成五月天| 国产精品扒开腿做爽爽爽视频| 蜜臀久久99精品久久久久久宅男| 91黄色8090| 国产精品色婷婷视频| 欧美精品videossex88| 国产一区二区视频在线观看| 亚洲欧美国产制服动漫| 91精品久久久久久久久久久久久| 自拍偷拍亚洲精品| 亚洲人成电影在线播放| 97高清免费视频| 日韩精品在线视频美女| 国产成人精品一区二区在线| 国产一区二区在线免费| 精品久久久久久久久国产字幕| 在线观看中文字幕亚洲| 热99精品里视频精品| 欧美一区二区大胆人体摄影专业网站| 欧美视频一区二区三区…| 亚洲女人天堂成人av在线| 欧美日韩国产999| 久青草国产97香蕉在线视频| 中文字幕久热精品在线视频| 日韩视频免费在线观看| 久久久久久国产| 亚洲综合av影视| 日韩一区av在线| 久久精品国产69国产精品亚洲| 粉嫩老牛aⅴ一区二区三区| 91精品国产一区| 136fldh精品导航福利| 搡老女人一区二区三区视频tv| 日韩中文视频免费在线观看| 久久午夜a级毛片| 亚洲精品成人免费| 欧美另类精品xxxx孕妇| 日韩精品小视频| 欧美大片免费观看| 91精品视频观看| 成人网在线免费观看| 欧美高清电影在线看| 久久在线免费观看视频| 国产亚洲精品久久久优势| 久久免费视频这里只有精品| 欧美大人香蕉在线| 国产欧美日韩高清| 久久免费精品日本久久中文字幕| 97av在线播放| 在线观看日韩av| 91最新在线免费观看| 欧美激情成人在线视频| 亚洲精品久久久久久久久久久久| 亚洲精品福利视频| 欧美一级视频一区二区| 91av视频在线| 欧美亚洲日本网站| 亚洲欧美国产精品| 日韩大陆欧美高清视频区| 国产综合香蕉五月婷在线| 亚洲第一二三四五区| 色哟哟网站入口亚洲精品| 国产精品69久久久久| 97精品一区二区三区| 日韩一级裸体免费视频| 欧美壮男野外gaytube| 欧美激情中文字幕乱码免费| 亚洲精品免费在线视频| 国产成人自拍视频在线观看| 欧美视频不卡中文| 欧美电影在线观看网站| 欧美大肥婆大肥bbbbb| 久久免费视频网| 成人写真视频福利网| 欧美日韩一区二区免费在线观看| 在线中文字幕日韩| 中文字幕在线成人| 欧美在线观看www| 国产91成人video| 91精品国产九九九久久久亚洲| 91精品久久久久久| 国产精品视频一区二区高潮| 欧美亚洲另类制服自拍| 在线播放国产一区中文字幕剧情欧美| 国产亚洲激情视频在线| 久久视频精品在线| 国产手机视频精品| 国产精品日韩在线播放| 色噜噜狠狠狠综合曰曰曰| 亚洲永久在线观看| 国产精品久久久久一区二区| 亚洲激情免费观看| 日韩欧美在线视频日韩欧美在线视频| 久久精品久久精品亚洲人| 伊人伊成久久人综合网站| 黄网动漫久久久| 日韩欧美999| 中文字幕日韩欧美在线视频| 国产精品久久久久久久久免费| 成人网在线视频| 国外色69视频在线观看| 日韩美女在线观看一区| 777国产偷窥盗摄精品视频| 亚洲在线免费观看| 中文字幕成人精品久久不卡| 一本一本久久a久久精品牛牛影视| 亚洲国产精品久久| 久久国产精品99国产精|