Python语言关于包的编写和编译

Python语言关于包的编写和编译

1 什么是“模块”?

​ 要想了解Python关于包的编写和编译,首先我们就得了解什么是模块。在百度百科中,“模块”一般是指任何能被装入内存中运行的可执行代码和数据的集合,直白地说,就像是一盒主题积木,通过它可以拼凑出某一主题的东西,它与函数不同,一个函数相当于一块积木,而一个模块中可以包括很多函数,也就是说一个模块中可以由很多的函数共同构成。

2 Python的模块分类

Python提供了强大的模块支持,Python的模块主要可分为三大类:

  • 标准模块
    标准模块是Python自带的,在其标准库中。
  • 第三方模块
    第三方模块是一些已经由别人弄好的模块,例如数值计算包里就有很多模块,第三方模块需要下载后才能使用。
  • 自定义模块
    自定义模块就是用户根据自己的需要自己编写定义的模块。

3 如何自定义模块?

自定义模块主要可分为两个部分:一部分是创建模块,一部分是导入模块及如何调用模块。

3.1 创建模块

在创建模块的时候,我们应当将模块中的相关代码编写在一个单独的文件中,在命名时应将文件命名为“模块名+.py”的形式。在这里需要注意的是,定义的模块名称不能与Python自带的标准库的名字相同。

在这里以一个计算bmi指数的模块编写为例,代码如下:

def fun_bmi(person,height,weight):
    '''功能:根据身高和体重计算BMI指数
            person:姓名
            heght:身高,单位:米
            weight:体重,单位:千克
    '''
    print(person+"的身高:"+str(height)+"米 \t 体重:"+str(weight)+"千克")
    bmi = weight/(height*height)   #用于计算BMI指数,公式为:BMI=体重/身高的平方
    print(person+"的BMI指数为:"+str(bmi))   #输出BMI指数
    # 判断身材是否合理
    if bmi< 18.5 :
        print("您的体重过轻~@_@~\n")
    if bmi>=18.5 and bmi<24.9:
        print("正常范围,注意保持(-_-)\n")
    if bmi>=24.9 and bmi<29.9:
        print("您的体重过重~@_@~\n")
    if bmi>=29.9:
        print("肥胖^@_@^\n")

保存该模块为“bmi.py”文件。

3.2 导入模块

导入模块的方式主要有两种,一种是使用import语句导入模块,一种是使用from…import语句导入模块,以下分别以简单的例子进行介绍。

3.2.1 使用import语句导入模块

import语句导入模块的基本语法为:

import modulename [as alias]
#import 模块名 [as 想设定的简称]

这里以刚才创建好的bmi模块的导入为例:

在刚才创建好的"bmi.py"同级目录下创建一个名为"main.py"的文件,将"bmi.py"模块导入该文件中,并执行该模块中的fun_bmi()函数,具体的代码如下:

import bmi
bmi.fun_bmi("尹一伊",1.75,120)

执行结果如下:
Python语言关于包的编写和编译

3.2.2 使用from…import语句导入模块

使用from…import语句导入模块的基本语法为:

from modulname import member
#from 模块名 import 成员 

modulname代表模块名,member用于指定要导入的变量、函数或者类。

这里通样以刚才创建好的bmi模块的导入为例:

from bmi import fun_bmi
fun_bmi("周大春",1.55,49)

执行结果:
Python语言关于包的编写和编译

4 Python中包的创建与调用

在python里,包的概念的提出是为了解决使用模块时函数名和变量名重名的问题。包是一个分层次的目录结构,它的功能是将一组功能相似的模块组织在一起。接下来将介绍如何创建包和使用包。

4.1 创建包

创建包的过程其实就是创建一个文件夹,并且在该文件夹下创建一个名为"–init–.py"的python文件,这是一个模块文件,模块名为对应的包名。在"–init–"文件中,可以不编写任何的代码,也可以根据自己的需要写代码。接下来将介绍如何创建一个包。

第一步:在电脑上创建一个文件夹,我在自己电脑的PythonProject文件夹下创建了一个名为"settings"的文件夹,在其内部又继续创建了一个同名文件夹。

第二步:在"settings"文件夹下创建"–init–.py"文件,文件中不写任何内容。

到这里,我们就已经创建好了一个名为"settings"的包,接下来只需在与"–init–.py"同级的目录下创建需要的模块即可。

以下是我在"settings"包中所创建的模块:
Python语言关于包的编写和编译
其中,"bmi.py"模块的代码如前面所示,"size.py"模块的代码如下:

width = 800    #宽度
height = 600    #高度

4.2 如何使用创建好的包

使用包,其实也就是使用包中创建好的模块,这里主要有三种方法:

  • 通过"import+完整包名+模块名"加载指定模块

以这种方式导入包后,在使用时需使用完整的名称。

示例:

创建一个"main.py"文件,具体内容如下:

import settings.size    #导入settings包下的size模块
if __name__=='__main__':
    print('宽度',settings.size.width)
    print('高度',settings.size.height)

运行结果:
Python语言关于包的编写和编译

  • 通过"from+完整包名+import+模块名"加载指定模块

通过该方式导入包后,在使用时可不用带包的前缀,具体如下:

from settings import size    #导入settings下的size模块
if __name__=='__main__':
    print('宽度',size.width)
    print('高度',size.height)

运行结果:
Python语言关于包的编写和编译

  • 通过"from+完整包名+模块名+import+定义名"加载模块

以这种方式加载模块后,直接使用函数、变量即可。

示例:

from settings.size import width,height    #导入settings下的size模块
if __name__=='__main__':
    print('宽度',width)
    print('高度',height)

运行结果:
Python语言关于包的编写和编译
至此,python自定义包的编写和编译使用介绍完毕。

上一篇:Python: if 条件判断


下一篇:R语言数据可视化分析案例:探索BRFSS数据