博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一,模块,模块导入
阅读量:4563 次
发布时间:2019-06-08

本文共 3286 字,大约阅读时间需要 10 分钟。

模块     import     from ... import ...     循环导入     相对导入     绝对导入     软件开发目录规范     重点:*********************************************         模块的查找顺序:             1,先从内存中找             2,内置中找             3,sys.path中找(环境变量):                     要分清楚谁是执行文件,谁是被导入文件         注意:它里面是一个大列表,里面放了一堆文件路径,第一个路径永远是执行文件。     ***************************************************************     一:模块基础知识:         定义:一系列方法或者功能的结合体             模块的三种来源:                 1:内置(python解释器自带的)                 2:第三方(别人写的)                 3:自定义的(自己写的)             模块的四种表现形式:                 1, 文件也可以作为模块(一个py文件也可作为一个模块)                 2,把一系列的模块组织在一起的文件夹                     文件夹下有一个__init__.py文件,包:就是一系列py文件的结合体                 3,被编译为共享库或DLL的C或C++扩展(了解)                 4.使用C编写并连接到python解释器的内置模块             使用模块的意义:                 1,拿来主义,极大的提高开发效率                 2,使用自定义模块:重新内容较大时,可以分为不同的模块                                     便于查找,修改,调用,维护 ,降低成本             如何使用:(注意)                 一定要区分那个是执行文件,那个是被导入文件     二:import         1,导入模块:(import.模块名)                 import.time             注意:导入多个模块时,import os,time,md   (不推荐)                 推荐用下面这种:(几个模块没有联系的情况下 应该分多次导入)                 import time                 import os                 import sys                              1,通常导入模块的句式会写在文件的开头                 2,当模块名字比较复杂的情况下 可以给该模块名取别名          ***   1.只要你能拿到函数名 无论在哪都可以通过函数加括号来调用这个函数(会回到函数定义阶段 依次执行代码)          ***   2.函数在定义阶段 名字查找就已经固定死了 不会因为调用位置的变化而改变     三:from ...import...         from md import money,read,change         from md import money         注意:第二次又导入模块money,或者多次导入时,会沿用第一次导入时创建的名称空间去直接查找结果(沿用第一次的结果)             1,首先会创建执行文件md1.py的名称空间                 首次导入md.py文件的模块时                     1,运行md.py                     2,将产生的名字存放到md.py 名称空间中                     3,直接拿到指向模块md.py名称空间中某个值得名字         # 补充             from md1 import *  # 一次性将md1模块中的名字全部加载过来 不推荐使用 并且你根本不知道到底有哪些名字可以用             print(money)             print(read)             print(change)         注意:             __all__可以指定当所在py文件被当做模块导入的时候             可以限制导入者能够拿到的名字个数             money = 1000             def read1():               print('md',money)             def read2():               print('md模块')               read1()             def change():               global money               money = 0             __all__ = ['money','read1','read2']     四:循环导入:         1,循环导入在程序实际阶段就应该避免         2,解决循环导入的问题:                 1,将循环导入的句式写在文件最下方                 2,函数内导入模块     五:绝对导入和相对导入:*******         绝对导入必须依据执行文件所在的文件夹路径为准             1.绝对导入无论在执行文件中还是被导入文件都适用         相对导入             .代表的当前路径             ..代表的上一级路径             ...代表的是上上一级路径             注意相对导入不能再执行文件中使用*******             相对导入只能在被导入的模块中使用,使用相对导入 就不需要考虑             执行文件到底是谁 只需要知道模块与模块之间路径关系     六:项目目录规范:             1,bin>>start   (执行>>>启动文件)             2,conf>> settings (公共>>>配置文件)             3,core>> src      (主程序>>功能逻辑文件)             4,lib>> common    公共的资源方法             5, db>> header     数据库   数据资源文件             6,log             日志 补存:     print(__name__)     当文件被当做执行文件执行的时候__name__打印的结果是__main__     当文件被当做模块导入的时候__name__打印的结果是模块名(没有后缀)     def func1():         print('1243243')     def func2():         print('你最帅')     if __name__ == '__main__':         func1()         func2()

转载于:https://www.cnblogs.com/Fzhiyuan/p/11196462.html

你可能感兴趣的文章
[原]Failed connect to mirrors.cloud.aliyuncs.com:80; Connection refused
查看>>
AOP:使用命令模式实现AOP
查看>>
算法:希尔排序(Shell Sort)
查看>>
Page Object 设计模式介绍
查看>>
全局变量报错:UnboundLocalError: local variable 'l' referenced before assignment
查看>>
面向对象(五)
查看>>
android平台下使用点九PNG技术
查看>>
Python学习3,列表
查看>>
Js拾忆
查看>>
最长回文子串
查看>>
JAVA基础-JDBC(一)
查看>>
js中for和while运行速度比较
查看>>
简单理解什么是递归(阶乘演示)
查看>>
http协议
查看>>
js倒计时,页面刷新时,不会从头计时
查看>>
洛谷1156垃圾陷阱
查看>>
python ==》 递归
查看>>
简单网络请求封装
查看>>
django —— MVT模型
查看>>
oracle 静默安装
查看>>