首页 > 编程语言 > 详细

Python 入门基础13 --模块与包

时间:2019-04-08 19:18:09      阅读:159      评论:0      收藏:0      [点我收藏+]

今日内容:

  • 1.模块及使用
  • 2.起别名、from导入
  • 3.自执行与模块

一、模块及使用

1.模块
一系列功能的集合体
2.定义模块
创建一个py文件就是一个模块,该py文件名就是模块名
3.为什么要使用模块
1.从文件级别组织代码,是同特性的功能能统一管理
2.可以使用系统或第三方模块(拿来主义),来提高开发效率
4.模块存在方式
1.使用C语言编写并链接到Python解释器的内置模块
2.已被编译为共享库或DLL的C或C++扩展
3.使用Python编写的.py文件(任何一个py文件都可以作为模板)
4.包:一堆py文件的集合体
5.如何使用模块
# 在要使用的该模块功能的文件中导入模块,通过import关键字导入模块名
import module

导入模块,会编译执行一个pyc文件,该pyc文件就是该模块的执行文件

再次导入,module模块不会被执行了
# 在任何地方都可以导入模块

def fn():
    global m3
    import m3  # 就是普通的名字,只是该名字执行的是一个py文件
    print('>>>',m3.num)
    
fn()
print(m3.num)

二、起别名、from导入

1.起别名
# 通过关键字as可以给模块起别名:模块一旦起别名,原模块名就不能再使用
# 1.可以简化模块名字
import mmmmmmmmmmmmm3 as my_m3
print(my_m3.num)

# 2.可以统一功能
cmd = input('数据库选择  1.mysql  2.oracle :')
if cmd =='1':
    import mysql as db
#     mysql.excuse()
else:
    import oracle as db
#     oracle.excuse()

db.excuse()

# ------------------------
mysql.py

def excuse():
    print('this is mysql')
# ------------------------
oracle.py
def excuse():
    print('this is oracle')
2.from导入
# 在import后的名字才会在该文件的名称空间中产生
from m4 import a,b,_c  # 指名道姓的可以导入_开头的名字

# 通过*导入: 可以将导入模块中的(除了以_开头的)名字一并导入

from m4 import *  # 通常不建议导入* ,但需要使用模块中绝大部分名字时,才考虑导入*
print(a)
a()

# 两个py文件中的名字a都合理存在
# 但import后的名字a和a=20,在一个名称空间中,只会保留最后一次值
a = 20
b()
# print(a)
# print(_c)

# ------------------------
m4.py

def a():
    print('a func')
def b():
    a()
    print('b func')
def _c():
    print('c func')

# _c = 30
# import _c as c

# 需求:内部已经有_开头的名字,还想被外界通过 * 导入
# 本质:导入 * 其实就是导入__all__列表中存放的索引名字,系统默认不会收录_开头的名字
__all__ =['a', 'b', '_c']  # 通过自定义__all__来规定外界通过*可以导入的名字

三、自执行与模块

# __name__:
# 1.在py文件作为模块被使用时,__name__为模块名
# 2.在py文件自执行时,__name__为字符串 '__main__'
# print(__name__)

# ------------------------
m6.py

print("共有逻辑")
if __name__ == '__main__':
    # 所有自执行的逻辑
    print("m6: 我是自执行的")
    a = 10  # 产生的是全局的名字
else:
    # 所有模块的逻辑
    print("m6: 我被导入执行的")
    # print(a)  # 走else就不可能走if,所以a压根没产生

Python 入门基础13 --模块与包

原文:https://www.cnblogs.com/xt12321/p/10672675.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!