模块初识

一、模块的概念

1、什么是模块:一系列功能的集合体

2、定义模块:创建一个py文件就是一个模块,该py文件名就是模块名 

模块的四种存在方式:
    使用python编写的.py文件 
    包:一堆py文件的集合体
    使用c编写并链接到python解释器的内置模块
    已被编译为共享库或DLL的c或c++扩展 

3、使用模块:在要使用模块的文件中,通过导入import 模块名 来导入模块

 4、为什么要使用模块:

从文件级别组织代码,是同特性的功能能统一管理 
可以使用系统或第三方模块(拿来主义),来提高开发效率  

每一个文件都会产生自己的全局名称空间,且互相不影响
多次导入,只会编译执行模块一次,将其加载到内存,之后都是直接对名字的引用。

import module
a = 8000
print(module.b())

 

二、起别名

# 在任何地方都可以导入模块

def fn():
    global m2
    import m2
    print('>>>',m2.num)
fn()
print(m2.num)

1、通过as关键字可以给模块起别名:模块名一旦起别名,原模块名就不能够使用

# 1、可以简化模块名字
import mmmmmm2 as my_m2
print(my_m2.num)

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

else:
    # import oracle
    # oracle.excuse()
    import oracle as db

db.excuse()

 

三、from导入

1、from 模块名 import 名字1,名字2,名字3

from m3 import a,b,_c  # 指名道姓的可以导入以_开头的名字

2、通过*导入:可以将模块中的名字一并导入

from 模块名 import *

导入的是模块中的__all__这个列表
1、系统默认该列表不会收录_开头的名字
2、可以自定义__all__列表来规定外界通过*可以导入的名字  

不建议直接导入*,因为可读性差,且极易出现变量名重名
from m3 import *
print(a)
a()

3、from导入起别名:一旦起别名,原名就不能再使用 

from 模块名 import 名字1 as 别名1, 名字2 as 别名2


from m4 import aaaa as a, bbbb as b, cccc as c print(a) # 10 print(b) # 20 print(c) # 30

 

四、自行文件与模块的区别

1、主文件

import m5

print(m5.money())
from m5 import money
money()
print(money())

2、调用文件

print('m5:我被导入执行的')

def money():
    money=1000
    print(money)
    return 123

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


if __name__ == '__main__':
    print('m5:我是自执行的')   
else:
    print('m5:我是被导入执行的')

 

posted @ 2019-04-10 20:53  TianShu  Views(168)  Comments(0Edit  收藏  举报