您的位置:首页 > 编程语言 > Python开发

Python零基础入门十八之模块

2017-01-16 21:17 731 查看
这篇模块主要讲解的是模块的相关知识,首先说下什么是模块,简答一句话就是说模块即程序,.我们可以任何一段程序作为一个模块,在需要的时候直接导入即可。

1.模块存储在哪里

一般跟python的IDE放在一个目录下,其他目录如何放置下文将介绍

2.导入模块的三种方法

(1)import +模块名

(2)from 模块名 import 函数名(多个函数名之间用逗号隔开),也可以使用*作为通配符

(3)import 模块名 as 新名字

3.使用模块中的方法

使用 模块名.方法名 即可

下面列举一个关于模块的简单的例子:

首先在python.exe目录下新建一个Convert.py模块,在里面写了华氏度与摄氏度相互转换的两个函数,代码如下:

def ctf(x):
return (32+x)*1.8
def ftc(x):
return (x-32)/1.8


然后在一个另一个程序中导入模块,然后调用方法。

import Convert
print(Convert.ctf(100))




这里只是使用了导入包的第一种方法,其余两种方法类似,不过推荐使用第三种方法,尤其是模块名称过长的时候。

4.如何做到”家丑不外扬”

如果模块中存在着测试代码,又不想删除,同时又不想让引用模块时输出无用的数据,我们可以使用“if _name_==’_main_‘”语句。

例如我在刚刚的程序中加入测试语句。

def ctf(x):
return (32+x)*1.8
def ftc(x):
return (x-32)/1.8print("测试数据:",ctf(100))


然后再在另一个调用模块的程序中运行该程序:



结果打印出了我们不想看到的一行数据。

我们可以这样修改代码:

def ctf(x):
return (32+x)*1.8
def ftc(x):
return (x-32)/1.8if __name__=='__main__':
print("测试数据:",ctf(100))


不要忘记if语句的格式与缩进

再去执行一下程序:



这样我们的“家丑”就不回外扬了。

再简单的解释一下为什么这样家丑就不回外扬了,其实打印几个参数就明白了:

def ctf(x):
return (32+x)*1.8
def ftc(x):
return (x-32)/1.8print(__name__)
if __name__=='__main__':
print("测试数据:",ctf(100))


我们在刚刚的模块的程序中加入了print(name)加一句代码,然后看其打印内容:



原来在模块中的namemain,而除了模块之外的name就不是main了,这样就将问题解决了。

import Convert

print(Convert.ctf(100))
print(__name__)
print(Convert.__name__)




其实不难理解,只有在自己的程序中的name字段的值才会为main.

5.搜索路径问题:进一步解决了模块放在哪里的问题

使用下面两条语句,可以查看python在执行语句时从哪里搜索模块进行导入。

import sys
print(sys.path)




当然我们也可以手动添加路径,由于path是一个列表,我们可以使用append方法进行追加。

sys.path.append("你的模块的路径\\")


这样便彻底解决了模块放在哪里的问题

6.包

包可以看作是一个专门放置模块的文件夹,创建一个包分为一下几步:

(1)创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字

(2)在文件夹中创建一个init.py的模块文件,内容可以为空,可以理解为这是一个包的标识性文件

(3)将相关的模块放入到文件夹中

导入包与导入模块类似:

import 包名.模块名 as 新名字

好了,关于模块的知识就到这了,以后再有会及时更新。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python
相关文章推荐