日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
一日一技:如何讓自己的工具函數(shù)在Python全局可用?

例如下面這個例子:

在武平等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網站制作、網站設計 網站設計制作按需搭建網站,公司網站建設,企業(yè)網站建設,成都品牌網站建設,全網整合營銷推廣,成都外貿網站建設,武平網站建設費用合理。

在A.py和C.py?文件都要使用clean_msg?這個工具函數(shù),那么他們就都要從util.py?中導入clean_msg。這似乎理所當然。

但今天我在看icecream/builtins.py[1]源代碼的時候,突然發(fā)現(xiàn)了一個高級用法,可以讓我們使用工具函數(shù)的時候,就像使用Python的print函數(shù)一樣,不用導入,而是直接使用。

我們先來看看效果:

大家注意A.py和C.py?,我并沒有導入clean_msg而是直接使用了這個函數(shù)。并且運行完全正常。

關鍵原理就在入口文件main.py,被我框住的3行:

import builtins

from util import clean_msg
setattr(builtins, 'clean_msg', clean_msg)

在Python里面,所有內置的函數(shù)或者類都在builtins?模塊中,因此在代碼里面可以直接使用而不用導入。現(xiàn)在只需要把我們自定義的工具函數(shù)注冊到builtins模塊中,就能讓它跟內置函數(shù)有相同的效果。

如果想把一個工具函數(shù)注冊成為內置函數(shù),只需要在入口文件中導入它,然后使用setattr?把它設置成builtins模塊的一個屬性。第二個參數(shù)是你想全局調用的時候的名字,第三個參數(shù)就是你需要注冊的工具函數(shù)。名字可以跟工具函數(shù)的名字不相同,只要不跟已有的內置函數(shù)重復就好了。

注冊完成以后,在這個項目的整個運行時中,任何.py文件里面都可以直接通過注冊的名字調用這個工具函數(shù),就跟調用內置函數(shù)一樣。

參考資料

[1] icecream/builtins.py: https://github.com/gruns/icecream/blob/master/icecream/builtins.py?


分享文章:一日一技:如何讓自己的工具函數(shù)在Python全局可用?
文章源于:http://www.5511xx.com/article/dpeessp.html