日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python實用工具FuckIt.py介紹

系統 1770 0

說起 Python 強大的地方,你可能想到是它的優雅、簡潔、開發速度快,社區活躍度高。但真正使得這門語言經久不衰的一個重要原因是它的無所不能,因為社區有各種各樣的第三庫,使得我們用Python實現一個東西實在是太簡單了,你經常會看到幾行代碼實現爬蟲,10行代碼實現人臉識別,雖然有些夸張,但確實就是有這樣的庫幫你把所有的繁文縟節全部封裝了,最后給你開放一個優雅的 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 使用了最先進的技術能夠使你的代碼不管里面有什么樣的錯誤,你只管 FuckIt,程序就能“正常”執行,兵來將擋水來土掩。

還是先來看個例子怎么使用的吧。

安裝

            
pip install fuckit
          

假設有一個目標文件: 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當作被除數。

如果直接 import broke 肯定會報錯

            
>>> import broke
File "broke.py", line 5
for
^
SyntaxError: invalid syntax
          

這時你可以使用 fuckit 將 broke 導入進來。

            
>>> import fuckit
>>> fuckit("broke")

            
              
>>> broke

              
            
          

調用函數 f 的時候也會報錯

            
>>> broke.f()
NameError: global name 'broken_code' is not defined
          

你可以使用鏈式 fuckit 來調用這個有問題的函數

            
>>> fuckit(broke).f()
fuckit chaining works
          

或者

            
>>> fuckit(fuckit("broke")).f()
fuckit chaining works
          

除此之外,fuckit 還可以作為裝飾器和上下文管理器來使用。

裝飾函數

            
>>> @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 很暴力,那么它能用在什么場景?個人認為這個庫很雞肋,因為你的代碼不應該容忍這些錯誤的出現,如果出現了錯誤應該立馬修復才是,但有一種可能的使用場景是你剛接手一份超復雜的代碼,里面各種看不懂的代碼,而這些操蛋的代碼時不時出現一個錯誤,而你又沒法駕馭它的時候,你就用 fuckit 吧。

fuckit的源代碼不到200行,好奇的你是不是很想知道它怎么實現了,用了什么黑科技?訪問項目地址:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 灵寿县| 新兴县| 清镇市| 曲水县| 巴彦县| 筠连县| 邵阳县| 嘉定区| 新晃| 吉安县| 六枝特区| 辽阳市| 迭部县| 静海县| 巴塘县| 德庆县| 清水县| 镇巴县| 桐柏县| 东方市| 济南市| 云龙县| 闵行区| 淮滨县| 安阳市| 汶川县| 华安县| 白水县| 卓资县| 桐柏县| 富顺县| 廊坊市| 安吉县| 岐山县| 汤原县| 同德县| 北票市| 漳浦县| 岢岚县| 兴安县| 酒泉市|