91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

反射的應用

發布時間:2020-08-10 21:33:05 來源:網絡 閱讀:275 作者:飛天喜歡yu 欄目:編程語言

我們在來復習一下反射

#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
歡迎登陸后臺管理
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永修县| 西乌| 谢通门县| 东阳市| 巨野县| 平远县| 浦县| 武乡县| 石阡县| 柳河县| 罗城| 呼图壁县| 错那县| 灌南县| 靖州| 巴林左旗| 南丹县| 临猗县| 繁昌县| 扶绥县| 普兰县| 莎车县| 长治县| 忻州市| 南汇区| 镇赉县| 仁怀市| 甘泉县| 绵竹市| 开远市| 德安县| 林甸县| 镇巴县| 汶上县| 鄂温| 冷水江市| 内江市| 买车| 东平县| 平远县| 商河县|