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

开发 后端
最近的"平安经"可谓是引起了不小的风波啊。作为一个正儿八经的程序员,最害怕的就是自己的代码上线出现各种各样的 BUG。

[[337723]]

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

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

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

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

做好心理准备了嘛?

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

 

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

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

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

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

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

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

 

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

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

 

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

 

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

 

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

 

继续探索除此之外,可还有其他方法呢?

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

先来看一下效果。

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

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

 

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

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

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

 

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

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

这样就可以了。

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

 

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

 

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

本文转载自微信公众号「 Python编程时光」,可以通过以下二维码关注。转载本文请联系 Python编程时光公众号。

 

 

责任编辑:武晓燕 来源: Python编程时光
相关推荐

2021-10-29 11:45:26

Python代码Python 3.

2020-10-26 10:11:45

Jupyter Not早起Python开发

2014-07-08 09:21:10

死代码创意歌曲

2021-04-22 07:47:47

JavaJDKMYSQL

2022-11-30 09:18:51

JavaMyBatisMQ

2020-05-18 08:42:23

CSS背景图像前端开发

2020-04-03 13:43:23

Python列表推导式字典推导式

2023-05-17 00:22:15

2017-02-05 10:06:53

Python黑魔法描述符

2021-04-29 23:45:07

函数式接口可用性

2021-04-28 14:31:35

Dubbo接口日志

2020-04-01 08:40:44

Vue.jsweb开发

2022-05-20 12:40:23

PythonMetaclass

2020-06-16 08:39:35

JavaScript图像处理库

2021-12-29 19:20:41

数据GitHub服务器

2021-06-02 08:00:57

WebAsyncTas项目异步

2022-04-26 06:43:12

文档TCPLinux

2021-07-26 23:39:20

Java变量代码

2016-10-19 15:15:26

2021-01-26 11:16:12

漏洞网络安全网络攻击
点赞
收藏

51CTO技术栈公众号