模块与包的导入

同级目录导入模块直接导入,一个py文件就是一个模块 #导入模块的方法: 
1、import 模块名1,模块名2 #注意只是模块名,不药写。py等后缀
2、import 模块名 as 别名
3、from 模块名 import 函数名
4、from 模块名 import * 跟__all__ = ['money','read1']结合使用 '''

1、import直接导入模块名
import导入模块干的事 1、产生新的名称空间 2、在新建的名称空间为全局名称空间,执行文件的代码 3、拿到一个模块名,指向spam.py 
def read1():
    print('from test.py')

spam.read1()   #apam -> read1-> money 1000  打印的是spam模块中的read1

money = 50
print(money)   #  50
print(spam.money)  #1000
spam.change()    #global改变
print(spam.money)  # 0
2、from  模块名 import 函数或变量名    
干的事 1、产生新的名称空间 2、在新建的名称空间为全局名称空间,执行文件的代码 3、直接拿到模块产生的名称空间中的名字
此种方法优缺点: 优点:方便,不用加前缀;
         缺点:容易跟当前文件的名称空间冲突 。
from spam import money
money=10
print(money)  #注意:因为这种导入方式在用时不能用模块名.变量名的方式指定用哪个,在导入后,又重新给money函数新的指向,所以这里结果是 10

from spam import *  #调用时不写spam.又可以一下子全部导入,可以在源文件中任意位置添加__all__ = ['money','read1']   来控制可以导入那些东西

  




原文地址:https://www.cnblogs.com/wangkc/p/6936263.html