Thirteen 模块.自定义模块

 

1、模块

        what:一个py文件就是一个模块,一个模块是一些相关功能的集合体

        why: 1)、减少重复代码,提高开发效率

           2)、使得你的代码的组织结构更清晰,有条理

    模块的划分:

    1)内置模块  如:time、os、sys

    2)拓展模块(第三方模块)pip

        这个需要下载安装pip3 pip 安装的模块,第三方模块

        beautiful soup、request、gevent 等

        itchat 与微信相关的模块

    3)自定义模块(自己写的模块)

2、自定义模块:

    引用模块相当于执行这个模块 ps:重复导入会直接引用内存中已加载好的结果

    模块被执行发生了三件事:

    1)创建一个以被导入模块的名字命名的名称空间

    2)自动执行模块中的代码(将模块中的所有内容加载到内存)

    3)要想执行模块中的代码,必须通过模块名.的方式执行或者获取

#导入模块并执行
# 第一种方式
import 模块名
模块名.函数名()
# 返回结果为模块名模块里面函数名()的结果,内存加载了模块名
# 第二种方式    好处:使用简单,坏处:调用同名变量时,后面会覆盖前面的
from 模块名 import 函数名    # 导入该模块的函数名
函数名()
# 返回结果为模块名模块里面函数名()的结果,内存加载了函数名
# 第三种方式,一般不用
from 模块名 import *     # 没有在导入模块中加 __all__['函数名','函数名']情况下
则导入模块名中所有的代码
from 模块名 import *     # 如果导入的模块中加__all__['函数名','函数名']情况下
则导入all[]里面的函数
# 模块改名
import old_name as new_name
# 1、模块名过长,引用不方便,给模块改名,简化引用
# 2、便于优化代码
db_sql = input('>>>')
if db_sql == 'mysql':
    import mysql as db
elif db_sql == 'orcle':
    import orcle as ab
as.模块名    # 模块里面的函数一样时,可以统一接口

# 引用多个模块,标准的:
import time
import sys

    4)文件有两个作用:

        1)作为脚本,直接运行

        2)作为模块供别人使用

        3)__name__ == '__main__'可以作为一个项目的驱动文件用

          在本文件运行__name__ == __main__,在其它文件调用的时候是文件名

3、模块的搜索路径:

    寻找顺序:先内存中找——>built-in 内置模块——>sys.path找

    print(sys.path)  返回一个列表,列表的第一个参数就是当前目录

    要想引用别的路径的模块,先加载路径到当前模块里面sys.path.append('路径')

global 全局仅限于当前模块的变量

 4、递归函数,会在内存空间不断开辟新的内存空间,直到内存占满为止(自己调用自己)

    os 模块的三个知识点

import os
def read(path,n):
    file_list = os.listdir(path)    # 获取目录下所有文件和目录,通过列表返回
    for file in file_list:
        file_path = os.path.join(path,file)    # 将上级文件路径与文件拼接,返回文件路径
        if os.path.isdir(file_path):    # 判断是否是目录
            print('    '*n,file)
            read(file_path,n+1)
        else:
            print('    '*n,file)
read(path,0)

 

posted @ 2019-01-07 15:48  pythonernoob  阅读(114)  评论(0)    收藏  举报