第二十四天- 模块导入 import from xxx import …
2018-11-20 03:26:24来源:博客园 阅读 ()
# 模块:
# 模块就是?个包含了python定义和声明的?件,?件名就是模块的名字加上.py后缀
# 换句话说我们?前写的所有的py?件都可以看成是?个模块
# 为何用模块:写大项目时,把相关的功能进?分离,方便开发和维护
# import:
# 先创建?个yitian.py,在该?件中创建?些武林前辈和?些打?场景
1 print("片头曲...") 2 3 main_person_man = "张无忌" 4 main_person_woman = "赵敏" 5 6 bad_person_one = "陈友谅" 7 bad_person_two = "灭绝师太" 8 bad_person_three = "周芷若" 9 bad_person_four = "宋青书" 10 11 12 def fight1(): 13 # global main_person_man # 改变了当前全局名称空间 14 # main_person_man = "麻花藤" 15 print("光明顶%s粉碎了%s的重大阴谋"%(main_person_man,bad_person_two)) 16 17 18 def fight2(): 19 print("屠狮大会%s粉碎了%s的阴谋"%(main_person_man,bad_person_three)) 20 21 22 print("片尾曲...") 23 24 if __name__ == '__main__': # __name__可以屏蔽掉一些测试代码 25 print(__name__) # 打印结果 __main__
# 再定义一个jinyong,模块中引入yitian模块
1 import yitian 2 import yitian # 模块若已导入 则不会重复导入(sys.modules) 3 4 from yitian import fight1 5 6 print("金庸...") 7 yitian.fight1() 8 9 print(yitian.bad_person_three) # 使用模块名可直接访问模块中的内容(变量、类、函数) 10 print(yitian.main_person_woman) 11 12 ''' 13 片头曲... 14 片尾曲... 15 光明顶张无忌粉碎了灭绝师太的重大阴谋 16 周芷若 17 赵敏 18 '''
# 由上可知
# 模块导入时做的事情
# 1. 先去sys.modules中查看当前导入的模块是否已经被导入.
如果该模块已经导入。 则不会重复导入
# 2. 若未导入,开辟一个新的名称空间。在该空间中执行模块中的代码
# 3. 给该空间一个名称。把该名称(py文件命名)引入到当前模块中(可使用globals查看模块的名称空间)
# print(globals())
# 如果我们在不同的模块中引入了同?个模块. 并且在某?个模块中改变了被引入模块中的全局变量.
# 则其他模块看到的值也跟着边. 原因是python的模块只会引入?次. ?家共享同?个名称空间
1 # 直接无法改变模块内容 2 from yitian import main_person_man,fight1 3 main_person_man = "灭绝" # 只改变了当前作用域 4 print(main_person_man) 5 fight1() # 光明顶张无忌粉碎了灭绝师太的重大阴谋 6 7 # 非要改变只能在引入时改变(强烈不推荐使用) 8 import yitian 9 yitian.main_person_man = "灭绝" 10 11 print(yitian.fight1()) # 光明顶灭绝粉碎了灭绝师太的重大阴谋
# # import jinyong as jy # 导入的模块可以给出一个别名,但这样原名就用不了了
# # import yitian,jinyong,re,json # 可以同时导入
# from xxx import * (不推荐使用)
# 等同 import xxx ,但若导入的模块有写 __all__ 那你就只能引用__all__的内容,且容易名称冲突!
# __name__可以屏蔽掉一些测试代码
# __name__如果是启动模块 值是main
# 若是导入模块 值是被导入的模块名称
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:模块语法
下一篇:记一次简单爬虫(豆瓣/dytt)
- python3 enum模块的应用 2019-08-13
- 利用python自动生成verilog模块例化模板 2019-08-13
- Python random模块(以后用到一个再更新一个) 2019-07-24
- xadmin进行全局配置(修改模块名为中文以及其他自定义的操作 2019-07-24
- concurrent.futures模块简单介绍(线程池,进程池) 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash