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

news/2024/7/5 7:09:19

来源 | Python编程时光

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

作为一个正儿八经的程序员,最害怕的就是自己的代码上线出现各种各样的 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 代码前,自动召唤佛祖念上一段平安经,希望本篇分享能对你有用。


推荐阅读
  • 我在攻克机器学习硕士学位的那些年

  • 谷歌顶级量子科学家详述他为何从谷歌辞职

  • TensorFlow、PyTorch夹缝之下:后浪的进击和野望

  • 紧急通知:招募 2000 名 IT 人学英语,免费培训!

  • AI不止能美颜,美妆迁移这样做 | 赠书


http://lihuaxi.xjx100.cn/news/268203.html

相关文章

crontab定时任务

Linux配置定时任务,大家都知道使用crontab这个系统功能,但有时候我们需要区分用户执行,下面就直接说一下2种方法的区别: 方法1: 使用命令 crontab -e 然后直接编辑定时脚本。 这样执行以后,属于用户自定…

Linux之复制、移动文件及目录命令

Linux之复制、移动文件及目录命令 1. 复制、移动文件及目录命令的使用 命令说明cp拷贝文件、拷贝目录mv移动文件、移动目录、重命名 cp命令效果图: 说明: 拷贝目录需要加上-r选项,-r表示递归拷贝目录及其内容 mv命令移动文件效果图 mv命令移动目录效果图 mv命令重…

海思系列芯片属性

Hi3531DV100 : 属性:芯片有 5 个 BT.1120 接口 Hi3536 2. 属性 :芯片有 1 个 BT.1120 接口,这个 BT.1120 接口对应一个 VI 设备。VI 设备可用 于时序采集,也可用于级联接收 VO 发来的数据

css海浪动画代码,不行一行代码,纯css实现海浪动态效果!

直入主题:首先画一个简单的盒子:利用::before与::after画两个圆角值(radius)不同的不规则圆形:父元素设置overflow: hidden最后加上animation动画让两个不规则圆形旋转起来即可代码htmlscss// 简单的盒子.wave {position: relative;width: 150px;height: 150px;back…

告别无止境的增删改查:Java代码生成器

对于一个比较大的业务系统,我们总是无止境的增加,删除,修改,粘贴,复制,想想总让人产生一种抗拒的心里。那有什么办法可以在正常的开发进度下自动生成一些类,配置文件,或者接口呢&…

谷歌提出「卷积+注意力」新模型,超越ResNet最强变体!

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达丰色 发自 凹非寺量子位 报道 | 公众号 QbitAITransformer跨界计算机视觉虽然已取得了一些不错的成绩,但大部分情况下,它还是落后于最先进的卷积网络…

掌贝获2000万美元B+轮融资,和智投资领投、味千中国和金沙江创投跟投

2月20日消息,掌贝近日宣布完成由和智投资领投、味千中国和金沙江创投跟投的2000万美金B轮融资。 掌贝为零售业和服务业的实体店提供数字化运营平台及服务,其数字化运营平台是实体店新一代的商业智能操作系统,帮助实体店实现人、货、场的连接…

NYOJ 93

汉诺塔(三) 时间限制:3000 ms | 内存限制:65535 KB难度:3描述在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝…