#导入模块干了哪些事:
#1 执行源文件
#2 以一个源文件的全局名称空间
#3 在当前位置拿到一个模块名,指向2创建的名称空间
# import spam
# money=100000000000
# def read1():
# print(‘from test‘)
# # print(spam.money)
# # print(spam.read1)
# # spam.read1()
#
# # spam.read2()
# spam.change()
# print(money)
# spam.read1()
#
# import spam as s1
# print(s1.money)
# sql_type=input(‘sql_type: ‘)
# if sql_type == ‘mysql‘:
# import mysql as sql
#
# elif sql_type == ‘oracle‘:
# import oracle as sql
#
# sql.sqlparse()
import sys
print(sys)
import spam
print(spam)
#优点:使用源文件内的名字时无需加前缀,使用方便
#缺点:容易与当前文件的名称空间内的名字混淆
# from spam import money,read1,read2,change
# money=0
# print(money)
# print(read1)
#
# read1()
# def read1():print(‘ok‘)
# read2()
#
# money=10
# change()
# print(money)
# from spam import money as m
#
# print(m)
from spam import *
# print(_money)
# read1()
# print(read2)
print(money)
print(x)
print(read1)
#模块只在第一次导入时才会执行,之后的导入都是直接引用内存已经存在的结果
import sys
print(‘spam‘ in sys.modules) #存放的是已经加载到内的模块
import spam
print(‘spam‘ in sys.modules)
# import spam
# import spam
# import spam
# import spam
# import spam