反射的应用
admin
2023-07-24 17:42:48
0次

我们在来复习一下反射

#demo.py中的程序
#!/usr/bin/env python
#coding:utf-8
def Foo():
    print "demo.foo"
#主程序
#!/usr/bin/env python
#coding:utf-8
str1 = 'demo'
str2 = 'Foo'
module = __import__(str1) # == import demo
funk = getattr(module, str2)
#getattr相当于房户户demo模块中的Foo函数
funk()
#可以看到getater就是找到foo函数,并且赋给funk函数。
结果:demo.foo

我们引入反射的应用实例

#account.py文件
#!/usr/bin/env python
#coding:utf-8
#登录网站相关文件
def login():
    print 'login'
def logout():
    print 'logout'

#index.py文件
#!/usr/bin/env python
#coding:utf-8
from backend import account
data  = raw_input("请输入URL:")
array = data.split('/')
if data == 'accout/login':
    account.login()
elif data == 'account/logout':
    account.logout()
#这里我们的大型网站如果有100个URL是不是我们要写100个if呢,这里我们就可以用反射动态获取。在下面介绍

一般web获取URL的原理

#这里admin.py和account.py都时我们URL的一个分页面
#admin.py文件
#!/usr/bin/env python
#coding:utf-8
def index():
    print '欢迎登陆后台管理'

#account.py文件
#!/usr/bin/env python
#coding:utf-8
#登录网站相关文件
def login():
    print 'login'
def logout():
    print 'logout'

#index.py文件
#!/usr/bin/env python
#coding:utf-8
data  = raw_input("请输入URL:")
array = data.split('/')
userspance = __import__('backend.'+array[0])
model = getattr(userspance, array[0])
func = getattr(model, array[1])

#相当于先导入一个文件夹,在文件夹中在导入那个模块,在执行函数。

#这里__import__ 相当于先导入import backend.account,然后在导入模块,在执行login()函数,也就是跟正常的没有区别,先import backend,然后backend.account,然后在backend.account.login

#这里我们正常导入模块时 import bachend.account ,执行的时候是使用backend.account.login(),所以我们这里在使用两次次getattr,这下应该差不多明白了
func()

#一次执行结果:
请输入URL:admin/index
欢迎登陆后台管理

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...