reflect反射
-
首先,我们要区分两个概念——“标识名”和“字符串”。两者字面上看起来一样,却是两种东西:
-
前者是函数func的函数名,后者只是一个叫“func”的字符串,两者是不同的事物。我们可以用func()的方式调用函数func,但我们不能用"func"()的方式调用函数。说白了就是,不能通过字符串来调用名字看起来相同的函数!
那么反射的作用或者意义是什么呢?
实例分析
-
考虑有这么一个场景:需要根据用户输入url的不同,调用不同的函数,实现不同的操作,也就是一个WEB框架的url路由功能。
- 首先,有一个commons.py文件,它里面有几个函数,分别用于展示不同的页面。
# commons.py pass
- 其次,有一个visit.py文件,作为程序入口,接收用户输入,并根据输入展示相应的页面
# visit.py
pass
这就实现了一个简单的url