python定义语言级的全局函数

本文介绍了如何在Python中定义全局函数,使其在不使用import的情况下直接使用。通过修改site.py文件,在Python启动完毕前自动导入自定义模块,从而实现自定义全局函数的创建。此外,还提供了一个实例,演示了如何实现双击python.exe自动执行项目代码的功能。
摘要由CSDN通过智能技术生成
python 如何定义像 len 一样的语言级的全局函数呢?
我说的是,定义完之后不用 import 也能直接使用的函数。

那么,先来看看 len 函数是定义在哪里的。



呃……我也忘记我是怎么知道 len 函数是在 __builtins__ 里的了,反正我就是知道了嘛。
好的,既然知道全局函数是定义在 __builtins__ 里的,那我们试着往里面塞一个自定义
函数看看行不行,马上就要成功了,想想就激动,这时候需要冷静。。。



居然白高兴一场。。。-_-|||   提示__builtins__不能赋值新的元素。

但是,程序员的坚毅品质告诉我不能放弃。于是,经过N久的努力,我发现确实还是不行。

好了,不扯淡了,领导来了,要工作了,我得赶快结束这篇文章。方法还是有的。

删除python安装目录lib下所有的pyc和pyo文件,双击python.exe启动命令行,啥都别做,
关闭它,把lib下此时生成的pyc文件列举出来,稍微调试下会发现site模块是最后生成
pyc文件的,也就是说,python启动初始化时,site模块是最后被调用的。

让我们在python启动完毕前做点什么吧。

是的,也许你已经想到了,在site.py文件最后加上一些自己的代码,或者做得干净点,
在site.py文件末尾import一个自定义模块,在这个自定义模块里写咱的全局函数吧。

在Python启动完毕前__builtins__是可以被赋值的,别问我是怎么知道的,我就是知道。



好的,整理一下思路,在python启动完毕前,会自动import自定义的myglobalmodule模块,
在myglobalmodule模块中定义全局函数,然后在项目的其它模块中无需再导入myglobalmodule
即可直接使用自定义的全局函数了,当然,全局常量、全局变量都是可以的。

这样定义的全局函数和python内置的全局函数(如len函数)在使用上没有区别。

以上用到的思路是很有用的,稍微扩展就可以做很多事情,
例如,双击 python.exe 自动执行项目代码,无需命令行手动启动。


就到这里吧,不写了,我要去搬砖了,工头又催了……


.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值