码迷,mamicode.com
首页 > 其他好文 > 详细

6 模块与包管理

时间:2018-02-04 12:39:23      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:表达式   概念   print   包含   隔离   模块   site   path   程序   

1 python程序结构

 1 #python程序结构从小到大依次为:
 2 #表达式、语句、函数、类、脚本文件(模块)、包
 3 
 4 #模块(Module):为了有利于命名空间的分割,一个项目中同名对象可以放在不同的模块中。
 5 #如数据库访问模块、订单访问模块、共享服务或数据(把一部分数据放在单独的模块中,给其他模块共用)
 6 
 7 #开发中代码的组织,一个顶层文件:包括主要控制流用于启动程序
 8 #若干个支持文件(模块),提供功能组件以备顶层文件使用
 9 
10 #如何利用其他模块?
11 #用import指令。导入机制import指令运行是执行并载入文件
12 #第一步:标识被载入的文件
13 #第二步:分配模块变量名称
14 
15 #如在a.py文件中的内容如下
16 greeting = hello
17 def print_hello():
18     print(greeting)
19 
20 print_hello()
21 
22 #文件b.py中的内容如下
23 import datetime.datetime
24 now = datetime.datetime.now()
25 def print_b_time(n):
26     print(当前时间:{}.format(n))
27 
28 #如果模块a中想使用模块b中定义的内容
29 #把文件b中的所有内容都导入到文件a中的写法import b.py
30 #print(b.now)
31 
32 #模块导入的过程
33 #环节一:查找模块文件,按照特定的搜索顺序;
34 #环节二:把找到的模块文件编译成字节码文件,缓存以提高调用速度,若被导入的模块内容变动或python版本变动,会重新编译,编译好的内容隔离存储于__pycache__目录(缓存);
35 #环节三:运行代码构造器定义的对象。
36 
37 
38 #模块搜索路径:
39 #1 程序主目录:主目录下的子目录,这里就涉及另外一个概念,包
40 #2 系统环境变量 PYTHONPATH 设定的目录
41 #3 前两步都找不到,就去标准库中找,即Python安装的目录的Lib目录下
42 #4 在Python运行环境创建一个配置文件 .pth文件内容指定目录(仅做了解),文件里配置,在哪个目录下,有什么模块
43 #5 第三方扩展 site-packages目录下安装的第三方扩展,,在Python安装目录或虚拟环境目录
44 
45 #模块的命名必须是合法的标识符
46 
47 #模块的使用import
48 #import product 用这种方式可以把整个模块导入
49 #还可以只导入模块的特定成员
50 #from product.pay import a,b,c  这样就可以直接用a,b,c了
51 #但是为了避免同名对象的覆盖,还是在引用对象的时候带上模块名
52 
53 
54 #由于模块导入操作只执行一次,被导入的模块代码如果后续有修改,修改部分不能映射到执行环境中
55 #可以使用importlib.reload 模块 重新导入模块
56 #在不终止当前程序运行的情况下重新导入模块 from importlib import reload 模块
57 #reload(product)  要求参数必须是模块,只能应用于import语句导入的部分
58 #from xx import 不适用于reload()
59 
60 
61 #package包管理
62 #当程序更加复杂的话,可以引入包,包就相当于是文件夹
63 #包含代码的目录
64 #报名自动作为命名空间的一部分
65 
66 #从其他包中导入模块的写法
67 #import product.category
68 #print(product.category.name)  在当前模块下用的时候,报名、模块名要写全。
69 
70 
71 #以相对路径方式导入模块
72 #从模块当前路径下开始找,只能使用from的方式导入
73 #from . import sqlite
74 #from . sqlite import dburl
75 
76 # . 代表当前文件路径
77 # .. 代表上级目录

 

6 模块与包管理

标签:表达式   概念   print   包含   隔离   模块   site   path   程序   

原文地址:https://www.cnblogs.com/avention/p/8412686.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!