python定義語言級的全域性函式

2021-06-29 12:24:29 字數 1284 閱讀 2603

python 如何定義像 len 一樣的語言級的全域性函式呢?

我說的是,定義完之後不用 import 也能直接使用的函式。

那麼,先來看看 len 函式是定義在**的。

呃……我也忘記我是怎麼知道 len 函式是在 __builtins__ 裡的了,反正我就是知道了嘛。

好的,既然知道全域性函式是定義在 __builtins__ 裡的,那我們試著往裡面塞乙個自定義

函式看看行不行,馬上就要成功了,想想就激動,這時候需要冷靜。。。

居然白高興一場。。。-_-|||   提示__builtins__不能賦值新的元素。

但是,程式設計師的堅毅品質告訴我不能放棄。於是,經過n久的努力,我發現確實還是不行。

好了,不扯淡了,領導來了,要工作了,我得趕快結束這篇文章。方法還是有的。

刪除python安裝目錄lib下所有的pyc和pyo檔案,雙擊python.exe啟動命令列,啥都別做,

關閉它,把lib下此時生成的pyc檔案列舉出來,稍微除錯下會發現site模組是最後生成

pyc檔案的,也就是說,python啟動初始化時,site模組是最後被呼叫的。

讓我們在python啟動完畢前做點什麼吧。

是的,也許你已經想到了,在site.py檔案最後加上一些自己的**,或者做得乾淨點,

在site.py檔案末尾import乙個自定義模組,在這個自定義模組裡寫咱的全域性函式吧。

在python啟動完畢前__builtins__是可以被賦值的,別問我是怎麼知道的,我就是知道。

好的,整理一下思路,在python啟動完畢前,會自動import自定義的myglobalmodule模組,

在myglobalmodule模組中定義全域性函式,然後在專案的其它模組中無需再匯入myglobalmodule

即可直接使用自定義的全域性函式了,當然,全域性常量、全域性變數都是可以的。

這樣定義的全域性函式和python內建的全域性函式(如len函式)在使用上沒有區別。

以上用到的思路是很有用的,稍微擴充套件就可以做很多事情,

例如,雙擊 python.exe 自動執行專案**,無需命令列手動啟動。

就到這裡吧,不寫了,我要去搬磚了,工頭又催了……

python全域性變數的定義

第一種方法 全域性變數定義在函式體或類外,函式體或類要用到這個全域性變數的時候,需要在類內或函式體內用global宣告 a 0 def num global a a 1print a num a 1 第二種方法 只在函式體內用global宣告,需要先呼叫一次函式體後,才能在函式體外輸出這個全域性變數...

Python定義全域性變數的用法

全域性變數是程式語言中常見的一種變數,通過全域性定義,可以是某物件函式建立,也可以是本程式任何位置建立,能夠被本程式中的所有物件或函式進行引用,全域性變數的定義有利於程式的變數共享,簡化了新增和修改的程式。和c語言一樣,python也具有全域性變數,其定義全域性變數的用法有兩種 1.宣告法 該方法是...

Python定義全域性變數的用法

全域性變數是程式語言中常見的一種變數,通過全域性定義,可以是某物件函式建立,也可以是本程式任何位置建立,能夠被本程式中的所有物件或函式進行引用,全域性變數的定義有利於程式的變數共享,簡化了新增和修改的程式。和c語言一樣,python也具有全域性變數,其定義全域性變數的用法有兩種 1.宣告法 該方法是...