一、在import模块的时候发生的事情

1、寻找模块
2、如果找到了,就开辟一块空间,执行这个模块
3、把这个模块中用到的名字都录到新开辟的空间中
4、创建一个变量来引用这个模块中

二、注意事项:
*1.模块不会被重复导入
*2.模块和文件之间的内存空间始终是隔离的
*3.模块的名字必须是符合变量命名规范的

简单模块导入实例:
import my_module
# my_module.read2()
# name = 'alex'
# my_module.read2()  # in read2 youhongliang
my_module.name = 'alex'
my_module.read2()  # in read2 alex

 

三、导入多个模块
3.1 注意事项:

    1、pep8规范

    # import os
    # import time
    # import my_module
    # 内置,第三方,自定义

    2、排列顺序

    # import os
    
    # import django
    
    # import my_module
3.2 给模块起别名
import my_module as m
m.read2()     # in read2 youhongliang
# 起别名之后,原来的名字就不能用了

起别名的应用

def dump(method):         # (繁琐版)
    if method == 'json':
        import json
        with open('file','w') as f:
            json.dump([1,2,3],f)
    elif method == 'pickle':
        import pickle
        with open('file', 'w') as f:
            pickle.dump([1, 2, 3], f)

简化版

def dump(method):
    if method == 'json':      # (简化版)
        import json as m
    elif method == 'pickle':
        import pickle as m
    with open('file', 'w') as f:
        m.dump([1, 2, 3], f)

3.3   模块搜索路径

import sys
print(sys.path)
import my_module
注意:
  正常的sys.path中除了内置、扩展模块所在的路径之外
  只有一个路径是永远不会出问题
  你直接执行的这个文件所在的目录
  一个模块是否被导入,就看这个模块所在的目录在不在sys.path中

 如果我们在同级目录中添加一个文件件,然后在这个文件夹中添加一个模块。

  直接:  import my_module2        (报错) # ModuleNotFoundError    

  做一步处理:

import sys
sys.path.append('D:\骑士计划\第五周\Day26\glance')
import my_module2

四、两种运行一个py文件的方式

4.1    直接运行它 : cmd python xx.py(文件) pycharm 脚本

    脚本运行时 __name__ == '__main__'

  

  

# 导入它 : 模块
# 模块运行:__name__ == '模块名'


4.2 语法讲解:
在模块调用中,如果只想脚本中使用的,只需要用这个语法
if __name__ == '__main__':  # 作为模块时,不该有的东西放在这里
    print('in my_module2')  # 重要语法
    print(__name__)
    # 函数调用