# 模块导入 ,应该写在文件开始的位置
# 导入顺序
# 先导入内置模块
# 再导入扩展的 比如django
# 再导入自定义的
# 同一个模块,在同一个文件中多次导入,只会导入一次
# import demo 导入模块:找到这个模块,创建这个模块的命名空间(demo),然后将模块的内容加载到了命名空间demo中
# 当导入一个模块时,先去sys.modules里查看是否存在这个模块,查看是否已经被导入,如果没有被导入
# 就根据sys.path路径取寻找模块,如果找到这个模块,就创建这个模块的命名空间,将模块的内容放入到
# 命名空间中,模块的名字在sys.modules加入,然后导入这个模块。
#import sys
#print(sys.modules) # 查看已导入的模块
# 给模块重命名
# import time as t # 将time模块名字重命名为t 这样time这个名字就无法用了,只能用t
# print(t.time())
# from time import sleep # 从一个模块中单独导入一个方法或对象
# sleep(1)
# from demo import * # 从demo模块中导入所有东西,如果demo模块中有__all__定义的内容,则导入__all__列表中定义的内容,如果没有则导入所有东西
# 当再一个A模块开始的位置定义了 __all__ = ['xxx', 'xxx1']时,此时在另一个B文件中使用
# from demp import * 则导入的是A模块文件中__all__定义的xxx和xxx1
# __name__ 在一个A文件运行A文件,A文件中的__name__就是__main__。如果不在A文件中运行A文件,而是将A文件导入到了B文件中,则运行B文件时,A文件中的__name__为文件名A
# 包
# 一大堆模块的集合为包