博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实用工具_Python实用工具FuckIt.py介绍
阅读量:5869 次
发布时间:2019-06-19

本文共 1916 字,大约阅读时间需要 6 分钟。

说起 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行,好奇的你是不是很想知道它怎么实现了,用了什么黑科技?访问项目地址:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

转载地址:http://eytnx.baihongyu.com/

你可能感兴趣的文章
防火墙的管理与维护
查看>>
Red Hat Package Manager(RPM的介绍和应用)
查看>>
MYSQL错误Can't connect to local MySQL server through socket '/var/lib/mysql/mysq
查看>>
VMware克隆虚拟机及网络设置(CentOS)
查看>>
安装新字体后,centos 6.x chrome收藏夹,标签中文乱码问题解决
查看>>
使用TermRecord在Ubuntu上录制和回放终端会话
查看>>
第14集 附加问句
查看>>
我的友情链接
查看>>
灌IOS方法
查看>>
CentOS7 双网卡绑定
查看>>
iptables规则
查看>>
activiti identify数据与系统用户数据同步问题
查看>>
maven配置jdk1.8环境
查看>>
巧用for循环
查看>>
创建LocalSessionFactory对象
查看>>
linux安装c/c++ man pages
查看>>
tcp 连接的11种状态
查看>>
POJ 2195 Going Home 题解 《挑战程序设计竞赛》
查看>>
POJ 3415 Common Substrings 题解《挑战程序设计竞赛》
查看>>
再谈javascriptjs原型与原型链及继承相关问题
查看>>