模块的初步认知和包的路径

# from file import login
# # login()
# import file
# file.login()

#创建glance文件
# import sys
# print(sys.path)
# import os
# os.makedirs('glance/api')
# os.makedirs('glance/cmd')
# os.makedirs('glance/db')
# l = []
# l.append(open('glance/__init__.py','w'))
# l.append(open('glance/api/__init__.py','w'))
# l.append(open('glance/api/policy.py','w'))
# l.append(open('glance/api/versions.py','w'))
# l.append(open('glance/cmd/__init__.py','w'))
# l.append(open('glance/cmd/manage.py','w'))
# l.append(open('glance/db/models.py','w'))
# map(lambda f:f.close() ,l)
# import glance.api.policy as p
# p.login()
# from glance.api import policy
# policy.login()
# from glance.cmd import manage
# from file import *
# # # __all__=["login","name"]
# # print(name)
# # login()
# # print()
# from...import
# 在本文件中对全局变量的修改是完全不会影响到模块中的变量引用的


# 模块中路径查询和添加,引用sys模块,并且添加了根目录文件
import sys
print(sys.path)
sys.path.append("E:\python:Project")
print(sys.path)
import file

# 运行py文件的两种方式:1.以模块的方式被引用;2,以脚本的形式直接被pycharm或者cmd运行
# python的执行
    # 解释 - 编译
# 当一个文件作为一个脚本被导入的时候
# 就会在这个文件所在的目录的__pycache__下生成一个编译好的文件
# 为了之后导入这个文件的时候直接读这个编译好的pyc文件就可以
# 可以节省一些导入时候的时间
# 在编写py文件的时候
    # 所有不在函数和类中封装的内容都应该写在
    # if __name__ == '__main__':下面
# import sys
# import my_module
# sys.modules
# {'sys':文件的内存地址,
# 'my_module': my_module的地址
# '__main__':当前直接执行文件所在的地址}
# 存储了所有导入的文件的名字和这个文件的内存地址

# 再使用反射自己模块中的内容的时候
# import sys
# getattr(sys.modules[__name__],变量名)
# import file#反射自己模块中的内容
# 在import之后 再修改这个被导入的模块
# 程序感知不到
# import importlib
# importlib.reload(模块名)
# 允许在短时间内改变模块变量强制更新打印
# reload这种方式可以强制程序再重新导入这个模块一次
# 非常不推荐你使用

# 在模块的导入中 不要产生循环引用问题
# 如果发生循环导入了

 

posted @ 2018-08-04 16:44  python小Faker  阅读(112)  评论(0编辑  收藏  举报