python3之反射的基本操作

反射

反射是编程语言中的一种高级操作方式,是在程序运行过程中,动态的从内存中获取执行状态,根据执行状态动态调用执行栈,完成具体功能的操作!

反射为了进行代码的黑盒调试,通过字符串描述反射得到对象的属性或者方法,完成目属性的获取或者方法的调用。

反射为了容错开发,不确定目标对象是否已经完善了对应的函数/方法,直接调用执行并且保证程序不能出错。

反射的方法

在这里插入图片描述

案例:反射机制下的容错开发

"""
反射机制下的容错开发
"""


class Service: # 开发A
    """业务类型"""
    @staticmethod
    def login():
        input("用户登录了, 按任意键继续..")


class Views:  # 开发B
    """视图"""
    @staticmethod
    def show_login():
        res = input("输入1开始登录")
        if res == "1":
            # 多人协同下,下面的传统代码已经不满足开发需求!
            # return Service.login()
            # 反射容错开发:判断目标对象中是否包含 login()属性
            if hasattr(Service, "login"):
                # 如果包含[已经开发完成了],获取login()
                login = getattr(Service, "login")
                # 执行登录
                return login()
        input("选项非法,重新登录")
        return Views.show_login()

Views.show_login()

发布了21 篇原创文章 · 获赞 0 · 访问量 214

猜你喜欢

转载自blog.csdn.net/raojiaxing_/article/details/105057965