python import reload_python基础之 运行程序(reload import exec)

exec 在使用exec执行脚本的时候,要注意,变量覆盖的问题

比如:在执行文件script.py之前,有一个 x=0的变量赋值,但是在script文件中也使用到了变量x,那么在执行exec(open("script.py").read())之后,x的值将会被覆盖

原因:exec在运行文件,就像是把文件粘贴复制到代码的执行的位置,不需要重载修改后的文件,所以会有正在使用的变量被覆盖的风险

除了 exec 之外,import 和 from其实也可以去运行我们的代码(不用来执行这样的程序)

20190609234315130796.png

20190609234315382758.png

在实际中,我们不会使用from 和 import去执行我们的程序,import 和 from 导入包的时候使用。

我们使用 from dir1.dir2.file_name import mode  或者是 import dir1.dir2.file_name 这样的方式来导入我们需要的模块或者是某一个变量。

在使用的时候,要求dir1 dir2这两个目录中必须要有__init__.py的文件,否则导入会报错,无法正常使用,使用编译器比如pycharm创建一个新的package就会自动给创建一个__init__.py文件。

代码工程的主目录不需要__init__文件,即使有也会被忽略。

__init__文件中可以有程序代码,你可以使用它进行模块的初始化,当然它也可以是一个空文件,主要承担包初始化钩子,目录产生模块命名空间,使用目录导入时实现from *行为的角色。

当然不要把包中的__init__文件和 类中__init__构造函数方法混淆,前者时为了导入初次遍历一个包目录时所运行的代码的文件,后者在创建实例的时候使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值