无名 发表于 2022-5-8 18:17:32

【技术教程】怎么用python挖坑害人

有不少人在写Python的时候,喜欢这样导入模块:

我今天要告诉你,你这样写就是在给自己挖坑。

我们来看一下这个坑是怎么样的:

首先你创建一个 main.py 文件,内容如下:

现在我们运行一下,发现一切正常。

接下来,创建一个 bug.py ,内容如下:

接下来,修改 main.py ,内容如下:

此时,你会发现一切正常。如下图所示。

好了,我们来挖个坑,再次修改 main.py ,改成下面这样:

现在,函数 anyfunc 正常运行,但是你会发现, datetime.datetime.now() 报错了,如下图所示。

这是因为,当你 frombugimport* 的时候,原来在 bug.py 第一行的 fromdatetimeimportdatetime 导入的 datetime.datetime 对象也会被导入到 main.py 中,此时由于 datetime.datetime 对象和 datetime 模块的名字相同,就会使得 datetime.datetime 对象覆盖了原来的 datetime 模块。所以就报错了。

由于一个大项目很多人合作,可能有些人喜欢

有些人喜欢

如果再遇上一个人喜欢 fromxxximport*

那么恭喜你——卒。

珍爱生命,请禁止使用 fromxxximport* 这种写法。
http://cdn.u1.huluxia.com/g3/M01/3E/D4/wKgBOV5ImiuAGch2AADkLZ2DhZc682.jpghttp://cdn.u1.huluxia.com/g3/M01/3E/D4/wKgBOV5ImiuAPK1tAADXrPBjcBo704.jpghttp://cdn.u1.huluxia.com/g3/M01/3E/D4/wKgBOV5ImiyAX-wDAAFEBsiocvA344.jpg
页: [1]
查看完整版本: 【技术教程】怎么用python挖坑害人