模块
一:什么是模块?
模块就是一个功能的集合体,不是用来直接运行,而是用来被导入使用的
二:模块的三大来源
内置模块
第三方模块
自定义模块
三:模块分为四种类别
一个py文件就是一个模块
一个文件夹也是一个模块(包)
已被编译为共享库或DLL的C或C++扩展
使用C编写并链接到python解释器的内置模块
四:为什么要用模块?
使用别人的模块:提升开发效率
自定义模块:别人功能不够用了,需要自己写,或者不符合业务逻辑
五:如何自定义模块?
# spam.py 这个模块是spam
print('from the spam.py')
money = 10000
def read1():
print("spam模块:", money)
def read2():
print("spam模块")
read1()
def change():
golbal money
money = 0
六:导入模块
# 这个文件名是test.py,模块名则是spam
x = 11
import spam # 首次导入spam模块
# 触发被导入模块的运行,产生一个模块的名称空间,把模块中的名字放进去,会在当前执行文件中得到一个名字span,该名字是指向被导入模块的名称空间
# 多次或者重复导入,名字spam直接引用首次导入的名称空间,不会再执行模块内的代码
import spam
import spam
money = 1000
spam.change()
spam.read1() # spam模块: 10000
print(money) # 1000
def read1():
print("run test.py---read1")
read1() #run test.py---read1
一:一行导入多个模块
import spam,m1,m2,m4 # 这个是不推荐的
二:给导入模块起一个别名
import spam as sm
# mysql.py
def sql_query():
print("from mysql query")
# sqllit.py
def sql_query():
print('from sqlit query')
query_sql.py
db_type = input(">>>").strip()
if db_type == mysql:
import mysql as db
elif db_type == 'sqllite':
import sqlite import db
db.sql_query() #
# 文件名是spam模块,模块名是spam
x = 111
from spam import money,read1,read2
from spam import money,read1,read2
money = 111 # 覆盖了导入的spam模块的money属性
print(money) # 111
# 一行导入多个名字
from spam import money,read1
# 为导入模块起别名
from spam import money as m
print(m)
# 把模块内的所以属性导入进来
from spam import *
print(money)
print(read1)
print(read2)
print(change)