Python實用工具FuckIt.py介紹
說起 Python 強大的地方,你可能想到是它的優(yōu)雅、簡潔、開發(fā)速度快,社區(qū)活躍度高。但真正使得這門語言經(jīng)久不衰的一個重要原因是它的無所不能,因為社區(qū)有各種各樣的第三庫,使得我們用Python實現(xiàn)一個東西實在是太簡單了,你經(jīng)常會看到幾行代碼實現(xiàn)爬蟲,10行代碼實現(xiàn)人臉識別,雖然有些夸張,但確實就是有這樣的庫幫你把所有的繁文縟節(jié)全部封裝了,最后給你開放一個優(yōu)雅的 API。
今天給你推薦的這個庫叫 “FuckIt.py”,名字一看就是很黃很暴力的那種,作者是這樣介紹它的:
FuckIt.py uses state-of-the-art technology to make sure your Python code runs whether it has any right to or not. Some code has an error? Fuck it.
FuckIt.py 使用了最先進的技術(shù)能夠使你的代碼不管里面有什么樣的錯誤,你只管 FuckIt,程序就能“正?!眻?zhí)行,兵來將擋水來土掩。
還是先來看個例子怎么使用的吧。
安裝
pip install fuckit
假設(shè)有一個目標文件: broke.py
def f():
broken_code
print('fuckit chaining works')
for
let's just assume this is a big module of shitty code.
x = y
y = x
1 / 0 # Oh shhhiiiiiii
var = "Are you proud of what you've done?"
broke.py 中有幾處明顯的錯誤,包括語法錯誤,變量 broken_code 沒有被定義,還有0當作被除數(shù)。
如果直接 import broke 肯定會報錯
>>> import broke File "broke.py", line 5 for ^ SyntaxError: invalid syntax
這時你可以使用 fuckit 將 broke 導(dǎo)入進來。
>>> import fuckit
>>> fuckit("broke")
<module 'broke' from 'broke.py'>
>>> broke
<module 'broke' from 'broke.py'>
調(diào)用函數(shù) f 的時候也會報錯
>>> broke.f() NameError: global name 'broken_code' is not defined
你可以使用鏈式 fuckit 來調(diào)用這個有問題的函數(shù)
>>> fuckit(broke).f() fuckit chaining works
或者
>>> fuckit(fuckit("broke")).f()
fuckit chaining works
除此之外,fuckit 還可以作為裝飾器和上下文管理器來使用。
裝飾函數(shù)
>>> @fuckit ... def broken_function(): ... non_existant_variable # Let's create a NameError ... return 'Function decorator works' ... >>> print(broken_function()) None
裝飾類
>>> @fuckit ... class BrokenClass(object): ... def f(self): ... self.black_hole = 1 / 0 ... return 'Class decorator works' ... >>> print(BrokenClass().f()) None
上下文管理器
>>> with fuckit:
... print('Context manager works')
... raise RuntimeError()
...
等價于
try:
print('Context manager works')
except RuntimeError:
pass
看到這里,是不是感覺 fuckit 很暴力,那么它能用在什么場景?個人認為這個庫很雞肋,因為你的代碼不應(yīng)該容忍這些錯誤的出現(xiàn),如果出現(xiàn)了錯誤應(yīng)該立馬修復(fù)才是,但有一種可能的使用場景是你剛接手一份超復(fù)雜的代碼,里面各種看不懂的代碼,而這些操蛋的代碼時不時出現(xiàn)一個錯誤,而你又沒法駕馭它的時候,你就用 fuckit 吧。
fuckit的源代碼不到200行,好奇的你是不是很想知道它怎么實現(xiàn)了,用了什么黑科技?訪問項目地址:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python虛擬環(huán)境venv配置文件pyvenv.cfg的實現(xiàn)
本文主要介紹了Python虛擬環(huán)境(venv)的配置文件pyvenv.cfg中的各個配置項及其含義,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Python通過模塊化開發(fā)優(yōu)化代碼的技巧分享
模塊化開發(fā)就是把代碼拆成一個個“零件”,該封裝封裝,該拆分拆分,下面小編就來和大家簡單聊聊python如何用模塊化開發(fā)進行代碼優(yōu)化吧2025-04-04

