成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一日一技:如何讓自己的工具函數在Python全局可用?

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

我們在開發Python項目的時候,經常會寫一些工具函數。為了在項目里面多個.py文件中使用這個工具函數,就不得不在多個地方都導入它,非常麻煩。

例如下面這個例子:

圖片

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

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

我們先來看看效果:

圖片

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

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

import builtins

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

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

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

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

參考資料

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

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2024-02-20 22:13:48

Python項目Java

2021-09-13 20:38:47

Python鏈式調用

2021-03-12 21:19:15

Python鏈式調用

2021-07-27 21:32:57

Python 延遲調用

2024-07-30 08:11:16

2024-07-30 08:16:18

Python代碼工具

2021-10-15 21:08:31

PandasExcel對象

2022-06-28 09:31:44

LinuxmacOS系統

2022-03-12 20:38:14

網頁Python測試

2025-05-28 03:15:00

Scrapy數據sleep

2024-11-13 09:18:09

2021-04-05 14:47:55

Python多線程事件監控

2021-04-12 21:19:01

PythonMakefile項目

2023-10-29 09:16:49

代碼安全命令

2021-06-08 21:36:24

PyCharm爬蟲Scrapy

2020-05-19 13:55:38

Python加密密碼

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2023-10-28 12:14:35

爬蟲JavaScriptObject

2024-11-11 00:38:13

Mypy靜態類型

2021-05-08 19:33:51

移除字符零寬
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品不卡 | 天堂一区 | 97国产爽爽爽久久久 | 免费视频一区二区三区在线观看 | 中文字幕日韩一区 | 亚洲精品久久久久久国产精华液 | 国产a级毛片 | 国产日韩欧美在线观看 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 国产在线播放一区二区三区 | 日韩一级电影免费观看 | 国产成人一区二 | 久久男人 | 日韩中文字幕久久 | 欧美日韩在线不卡 | 久久久久中文字幕 | 国产一区二区三区免费 | 香蕉超碰 | 久久综合久色欧美综合狠狠 | 一级免费黄色 | 国产在线观看网站 | 亚洲成人av在线播放 | 综合色在线 | 99久久婷婷国产综合精品电影 | 成人欧美一区二区 | 欧美性一级 | 久久国产精品一区二区 | 中文字幕在线观看视频一区 | 女女爱爱视频 | 欧美一区二区在线观看 | 激情久久网 | 亚洲一区二区三区在线视频 | 欧美a在线| 欧美午夜精品理论片a级按摩 | 久久久久久中文字幕 | 无码一区二区三区视频 | 91精品国产综合久久香蕉麻豆 | 久久精品国产一区二区电影 | 男人天堂社区 | 在线国产一区二区 | 国产精品国产三级国产aⅴ入口 |