Python随心记--反射动态导入模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python随心记--反射动态导入模块相关的知识,希望对你有一定的参考价值。

hasatttr(object,name)   #检测对象中是否存在name属性
getattr(object,name,delault = Null)
setattr(object,x,True)
delattr(object,x) #删除属性
class BlackMedium:
    feture = Ugly
    def __init__(self,name,addr):
        self.name = name
        self.addr = addr
    def sell_hourse(self):
        print([%s] 正在卖房 %self.name)

blackmedium = BlackMedium(青年公寓,南山)
print(hasattr(blackmedium,name))   #存在返回True
print(getattr(blackmedium,name,meiyouzhi))   #存在返回值
setattr(blackmedium,white,True)   #设置属性
setattr(blackmedium,func,lambda x:x+1)   #加函数
print(blackmedium.func(12))
#反射使用场景
1 实现可插拔机制
2 动态导入模块
class Ftpclient:
    def __init__(self,addr):
        self.addr = addr
        print(正在连接IP:%s服务器 %self.addr)
    def put(self):
        print(正在上传文件)
from  module import  Ftpclient  #模拟Ftpclient在module模块下

ftpclien = Ftpclient(192.168.0.1)
if hasattr(ftpclien,put):
    func_get = getattr(ftpclien,put)
    func_get()
else:
    print(方法不存在)
动态导入模块
module_t = __import__(m.t)   #传出字符串,类似于文明的名称
module_t.t.test()   #调用t下的test方法

import imaplib
imaplib.import_module(m.t)   #以字符串模式导入

 






以上是关于Python随心记--反射动态导入模块的主要内容,如果未能解决你的问题,请参考以下文章

Python反射(自省)机制

Python 实现接口类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)

七. 使用反射动态导入模块

python26 封装 多态 常用的内置函数 `__str__` `__del__` 反射 动态导入模块

python------Socket网略编程+动态导入模块

动态导入模块