码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-01-01 00:19:34      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:实现   字符串   连接   设置   名称   导入   模块   int   使用   

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随心记--反射、动态导入模块

标签:实现   字符串   连接   设置   名称   导入   模块   int   使用   

原文地址:https://www.cnblogs.com/Essaycode/p/10203659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!