Python基础 ( 八 ) —— 模块与包

为了提高代码的可维护性,我们把不同功能的函数分组,存入不同的.py文件中,用的时候调用,这里的一个.py文件就称为一个模块

一共分为三种:

python标准库

第三方模块                     #需要自己添加

应用程序自定义模块      #自己写一个.py文件被调用

小补充:

#1 pycharm中创建的directory 和 python package 都为文件夹,但是后者创建的文件夹中自带一个 __init__.py 文件

#2 调用多个模块可以用逗号,隔开

#3 规范来说,一个程序,需要把函数的入口(启动文件)的名字设为bin,所有关于逻辑的主程序名字设为main,各种功能的函数写为模块。

import os,time,modules

#调用方法

#import

import modules                      #如果直接调用模块文件名字则需要在同级目录下
                                    #这个过程会把modules.py文件执行一次
                                    #飘红不一定是报错,也可能pycharm误认为是错的
print(modules.cal_sum(1,2,3,4))     #加载的模块以模块名变量的形式调用    

or

#from xxx import xxx

#执行过程:先运行模块文件,然后加载指定函数

from modules import cal_sum       #加载指定函数      
print(cal_sum(1,2,3,4))

or

from modules import *              #加载模块中的所有函数,但不推荐使用,因为如果后面再定义的函数名与模块中的函数名相同的时候会覆盖掉
print(cal_sum(1,2,3,4))

#关于调用模块的路径问题

#只认一条:执行文件的当前目录(sys.path中的第一条路径)

#无法像open一样指定路径,除非把路径添加到sys.path里

import sys
print(sys.path)          #获取路径,跟环境变量类似

 

 

#package 包的概念(其实就是带有__init__.py的文件夹,或者叫python package)

#用于组织模块,相当于一个分类,按功能把模块文件放到指定包中,方便调用

 

#包的调用

文件目录如下

from package0.package1.package2 import function2
print(function2.cal_sum(1,2,3,4))

or

from package0.package1.package2.function2 import cal_sum
print(cal_sum(1,2,3,4))

#包被调用,会执行包中的__init__.py文件

#__name__

#在执行文件中 ,__name__的值为__main__

#当你在当前文件中调用了其他文件,其他文件中的__name__值就为调用的目录形式的名字

#用法一:用于测试当前文件的代码,当别人调用此文件时候不会执行测试文件(被调用文件的测试)

def func0():
    pass
def func1():
    pass
if __name__ == '__main__':
    print('这里是测试代码')

#用法二:阻止别人调用你指定的程序

posted @ 2019-02-28 16:04  Matrixssy  阅读(225)  评论(0)    收藏  举报