python 模块

python中的模块一般都是一个个.py文件,模块中一般定义的是function或者class,这时模块名其实可以被看成是命名空间。

我们在导入python的模块时,要使用import命令。python寻找导入模块路径一般从sys.path参数返回的路径找起,也就是说要想导入我们自己写的模块,要把模块放到sys.path路径中。可以在程序一开始就sys.path.append(“路径”),但是这样的话只是对当前执行的脚本有效,一旦执行完这个添加的路径在下一次执行的时候就不会生效。其实可以针对不同的操作系统有不同的设置方式。比方在linux系统中,如果使用的是bash shell,我们就可以在.bashrc文件中设置PYTHONPATH变量,来永久设定import的导入路径。

下面为了方便讲解,我们假设有一个模块a.py。
另外我们需要注意的是,我们的测试代码要写在if __name__=”__main__”:之后,这样在import该模块的时候测试代码不被执行。如果不这样写的话,每次导入都会执行测试代码。

其实在我们导入模块的时候,当.py文件第一次被导入时,它会被汇编为字节代码,并将字节码写入同名的.pyc文件中。后来每次导入操作都会直接执行.pyc 文件(当.py文件的修改时间发生改变,这样会生成新的.pyc文件)

在导入模块时,解释器做以下工作:
1.已导入模块的名称创建新的命名空间,通过该命名空间就可以访问导入模块的属性和方法。
2.在新创建的命名空间中执行源代码文件。
3.创建一个名为源代码文件的对象,该对象引用模块的名字空间,这样就可以通过这个对象访问模块中的函数及变量
import 语句可以在程序的任何位置使用,你可以在程序中多次导入同一个模块,但模块中的代码仅仅在该模块被首次导入时执行。后面的import语句只是简单的创建一个到模块名字空间的引用而已。

如果我们想把多个模块组织起来,放到一个文件夹下,这就是python中包的概念。既然组织起来放到了一个文件夹下,那么文件夹中必须要有init.py文件,这样才能使该包中的模块被其他程序导入。这个文件可以是空的,也可以写导入本文件夹下其他模块的语句。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值