python中的反射机制,解决模块动态引入,路由分发

什么是反射机制

反射是将字符串映射到实例变量或实例方法的一种机制.
常见的应用场景:(1)动态加载模块(2)web框架的URL路由

学习中的可能遇到了这些需求

(1)你的伙伴封装好了很多py文件,然后你负责根据不同需求去调用不同模块。
(2)你写了一个类,其中封装了很多方法,这时你需要提供一个统一的入口供其他人调用(类似路由转发)。
这两个问题都可以通过反射很好的解决

python中的反射

(1)__import__() 动态加载模块
(2)hasattr() 判断实例是否存在字符串对应的属性
(3)getattr() 获取字符串对应的属性
(4)setattr() 将字符串对应的已存在的属性添加到实例中
(5)delattr() 删除实例中字符串对应的属性

解决模块动态引入问题

def new_method(self):
    print("我是新来的请多关照!")


def main():
    """
    动态导入模块,并创建类实例执行其中方法
    """
    # 1 动态导入func_001模块
    func001_module = __import__("src.func_001", fromlist=True)
    print(func001_module)

    # 1.1 判断是否存在对应类
    if hasattr(func001_module, "Func001"):

        # 2 创建Func001类实例对象
        func001 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值