python模块入门

1.模块的基本概念

定义:模块是从逻辑上组织python代码的形式

当代码量变得相当大它的时候,最好把代码分成一些有组织的代码段,并为其取一个名称

这些代码段中可能有定义好的成员变量或函数。

当我们需要使用该模块的成员变量或函数的时,我们可以导入并使用它们

 

2.创建模块

模块物理层面上组织模块的方法时文件,每一个以.py作为结尾的python文件都是一个模块

模块名称不能与系统已存在的模块重名

当调用模块是去掉后缀.py,如import random

 

3.模块搜索路径

模块的导入需要一个叫做‘路径搜索’的过程

python在文件系统的‘预定义区域’中查找要调用的模块

搜索路径在sys模块中定义

>>> import sys
>>> print(sys.path)
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']

需要注意的是,如果你定义了一个模块,就把他放在合适的位置,比如/usr/local/lib/python3.6 下

可以看到sys.path列表第一个变量是‘’,代表当前目录下的模块

[root@myhost mnt]# ls                        #确认咋当前目录下
 mymode.py   
[root@myhost mnt]# python3             
>>> import mymode                             #可以导入
>>> 
[root@myhost mnt]# cd ..                     #切换目录
[root@myhost /]# python3
>>> import mymode                             #导入失败
Traceback (most recent call last):  
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'mymode'
>>> 

 

4.导入模块

使用import导入模块

模块变量或函数通过模块名.属性调用

如果仅需要模块中的某些属性,也可以单独导入

from random import randint

导入random模块的randint方法

 

5.模块加载(load)

一个模块只被加载一次,无论它被导入多少次,因为当两个文件相互导入的时候,防止了无限的相互加载

模块加载时,顶层代码会自动执行,所以只将函数放入模块的顶层是良好的编程习惯

顶层代码

1 PP = 3.14
2 
3 def main():
4     print "PP:", PP
5 
6 main()
7 
8 #上面的第一行,第三行,第六行的代码则是顶层代码。

 

6.__name__: 对被调用的模块中的重名方法做判断的工具

模块具有一个__name__的特殊属性

当在一个python文件中调用一个模块时,这个模块的__name__就是它的模块名

而在自己的文件中输出__name__时,输出结果为__main__

假设有两个文件py1.py和py2.py,我们在py2.py中调用py1.py

#Py1.py
2 #!/usr/bin/env python
3 def test():
4    print("this is py.1")
5
1 #Py2.py
2 #!/usr/bin/env python
3 import Py1
4 def test():
5    print("this is py.2")
6
7 test()
8 print (Py1.__name__)
9 print (__name__)

输出结果:

Py1

__name__

 

那为什么说__name__是对被调用的模块中的重名方法做判断的工具呢?

通过结果可以知道,Py2.py直接执行,那么内建变量__name__的值为__main__,否则为模块的名字,通过这个特性可以在if语句里面添加测试代码,可以提高减少BUG,提高程序的健壮性。
if __name__ == '__main__':
  test()

判断__name__是否是__main 即确保这个方法是Py2在调用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值