我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

  • A+
所属分类:安全开发

来自公众号:Python编程时光
链接:http://python.iswbm.com/en/latest/c09/c09_05.html

最近的"平安经"可谓是引起了不小的风波啊。

作为一个正儿八经的程序员,最害怕的就是自己的代码上线出现各种各样的 BUG。

为此,明哥今天分享一个 Python 的黑魔法,教你如何在你执行任意 Python 代码前,让 Python 解释器自动念上一段平安经,保佑代码不出 BUG 。

本技巧已经收录于最新版的 《Python黑魔法指南》v2.0,可以前往 Github 阅读:https://github.com/iswbm/magic-python

做好心理准备了嘛?

明哥要开始作妖了,噢不,是开始念经了。

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

感谢佛祖保佑,Everything is ok,No bugs in the code.

你一定很想知道这是如何实现的吧?

如果你对 Linux 比较熟悉,就会知道,当你在使用 SSH 远程登陆 Linux 服务器的时候?会读取 .bash_profile 文件加载一些环境变量。

.bash_profile 你可以视其为一个 shell 脚本,可以在这里写一些 shell 代码达到你的定制化需求。

而在 Python 中,也有类似 .bash_profile 的文件,这个文件一般情况下是不存在的。

我们需要新建一个用户环境目录,这个目录比较长,不需要你死记硬背,使用 site 模块的方法就可以获取,然后使用 mkdir -p 命令创建它。

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

在这个目录下,新建一个 usercustomize.py 文件,注意名字必须是这个,换成其他的可就识别不到啦。

这个 usercustomize.py 的内容如下(明哥注:佛祖只保佑几个 Python 的主要应用方向,毕竟咱是 Python 攻城狮嘛...)

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

这个文件我放在了我的 github 上,你可以前往获取

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

一切都完成后,无论你是使用 python xxx.py 执行脚本

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

还是使用 python 进入 Python Shell ,都会先念一下平安经保平安。

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

继续探索

除此之外,可还有其他方法呢?

当然是有,只不过相对来说,会麻烦一点了。

先来看一下效果。

先查看下 ~/Library/Python/3.9/lib/python/site-packages 目录下并没有 usercustomize.py 文件。

但是在执行 python 进入 Python Shell 模式后,还是会打印了平安经。

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

这又是如何做到的?真见鬼了呀。

方法其实也很简单,只要做两件事,就能实现这样的效果:

第一件事,在任意你喜欢的目录下,新建 一个Python 脚本,名字也随意,比如我叫 startup.py,内容还是和上面一样

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

第二件事,设置一个环境变量 PYTHONSTARTUP,指向你的脚本路径

$ export PYTHONSTARTUP=/Users/MING/startup.py

这样就可以了。

但是这种方法只适用于 Python Shell ,只不适合 Python 执行脚本的方法。

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

如果要在脚本中实现这种效果,我目前想到最粗糙我笨拙的方法了 -- 手动加载执行

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

本文分享了两个非常冷门 Python 的黑魔法技巧,可以实现在你执行任意的 Python 代码前,自动召唤佛祖念上一段平安经。

希望本篇分享能对你有用,更多关于 Python Shell 的玩法,我已经整理在了我的 Github 上(https://github.com/iswbm/magic-python),可以前往查看。


●输入m获取文章目录

推荐↓↓↓

我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』

人工智能与大数据技术

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: