在python面向对象的学习中,有一个概念非常重要,那就是“反射”。相信对编程语言有所了解的朋友来说这个概念并不陌生,编程语言中的术语往往是不太好理解的。本文并不打算对“反射”这个概念进行解释剖析,而是以模拟web路由的案例去阐述反射在python中的一个应用场景。
一、案例分析
以web开发中的用户模块为例,有登录,注册,退出等操作,对于这些操作实际上往往对应了相应的url地址,而每一个url地址的背后实质上是对应了相应的功能,我们可以理解成每一个功能对应一个函数,调用不同的函数从而实现不同的操作。思路延伸来去思考,程序可以根据用户输入不同的url去调用不同的函数,进而执行不同的功能,这个其实就是url的路由功能。以下是一个简单的小案例,如下:
1、编写用户模块,分别有login、logout、register三个函数,分别实现不同的功能。如下图所示:
2、编写程序入口模块。此模块可以接收用户的输入url地址的不同执行不同的函数功能。如下图所示:
3、运行main.py这个模块,输入不同的url就可以调用不同的函数(这个url地址恰好是函数的名称),这个呢就实现了简单了web路由功能。
二、总结
上面的这种方式非常容易理解,但是有个问题没有解决,那就是如果关于用户模块有上百个函数,那么在main.py模块里难道就要写成百个if...elif条件判断吗?显然是不太可能的,那么该怎么解决呢?
答案是:通过反射机制来解决。如何做且听下回分解。
领取专属 10元无门槛券
私享最新 技术干货