# 模块:
# 模块就是⼀个包含了python定义和声明的⽂件,⽂件名就是模块的名字加上.py后缀
# 换句话说我们⽬前写的所有的py⽂件都可以看成是⼀个模块
# 为何用模块:写大项目时,把相关的功能进⾏分离,方便开发和维护
# import:
# 先创建⼀个yitian.py,在该⽂件中创建⼀些武林前辈和⼀些打⽃场景
 print("片头曲...")

 main_person_man = "张无忌"
main_person_woman = "赵敏" bad_person_one = "陈友谅"
bad_person_two = "灭绝师太"
bad_person_three = "周芷若"
bad_person_four = "宋青书" def fight1():
# global main_person_man # 改变了当前全局名称空间
# main_person_man = "麻花藤"
print("光明顶%s粉碎了%s的重大阴谋"%(main_person_man,bad_person_two)) def fight2():
print("屠狮大会%s粉碎了%s的阴谋"%(main_person_man,bad_person_three)) print("片尾曲...") if __name__ == '__main__': # __name__可以屏蔽掉一些测试代码
print(__name__) # 打印结果 __main__
# 再定义一个jinyong,模块中引入yitian模块
 import yitian
import yitian # 模块若已导入 则不会重复导入(sys.modules) from yitian import fight1 print("金庸...")
yitian.fight1() print(yitian.bad_person_three) # 使用模块名可直接访问模块中的内容(变量、类、函数)
print(yitian.main_person_woman) '''
片头曲...
片尾曲...
光明顶张无忌粉碎了灭绝师太的重大阴谋
周芷若
赵敏
'''
# 由上可知
# 模块导入时做的事情
# 1. 先去sys.modules中查看当前导入的模块是否已经被导入.
如果该模块已经导入。 则不会重复导入
# 2. 若未导入,开辟一个新的名称空间。在该空间中执行模块中的代码
# 3. 给该空间一个名称。把该名称(py文件命名)引入到当前模块中(可使用globals查看模块的名称空间)
# print(globals())
# 如果我们在不同的模块中引入了同⼀个模块. 并且在某⼀个模块中改变了被引入模块中的全局变量.
# 则其他模块看到的值也跟着边. 原因是python的模块只会引入⼀次. ⼤家共享同⼀个名称空间
 # 直接无法改变模块内容
from yitian import main_person_man,fight1
main_person_man = "灭绝" # 只改变了当前作用域
print(main_person_man)
fight1() # 光明顶张无忌粉碎了灭绝师太的重大阴谋 # 非要改变只能在引入时改变(强烈不推荐使用)
import yitian
yitian.main_person_man = "灭绝" print(yitian.fight1()) # 光明顶灭绝粉碎了灭绝师太的重大阴谋

# # import jinyong as jy  # 导入的模块可以给出一个别名,但这样原名就用不了了
# # import yitian,jinyong,re,json # 可以同时导入
# from xxx import * (不推荐使用)
# 等同 import xxx ,但若导入的模块有写 __all__ 那你就只能引用__all__的内容,且容易名称冲突!
# __name__可以屏蔽掉一些测试代码
# __name__如果是启动模块 值是main
# 若是导入模块 值是被导入的模块名称
 


第二十四天- 模块导入 import from xxx import xxx的更多相关文章

  1. Python第二十四天 binascii模块

    Python第二十四天 binascii模块 binascii用来进行进制和字符串之间的转换 import binascii s = 'abcde' h = binascii.b2a_hex(s) # ...

  2. javaSE第二十四天

    第二十四天    363 1:多线程(理解)    363 (1)JDK5以后的Lock锁    363 A:定义    363 B:方法:    364 C:具体应用(以售票程序为例)    364 ...

  3. NeHe OpenGL教程 第二十四课:扩展

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. Gradle 1.12用户指南翻译——第二十四章. Groovy 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  5. SQL注入之Sqli-labs系列第二十四关(二阶注入)

    开始挑战第二十四关(Second Degree Injections) 0x1 前言 SQL注入一般分为两类:一阶SQL注入(普通SQL注入),二阶SQL注入 .二次注入不是注入两次的意思,请不要混淆 ...

  6. “全栈2019”Java多线程第二十四章:等待唤醒机制详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  7. “全栈2019”Java第二十四章:流程控制语句中决策语句switch下篇

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. 孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘

    孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天发现了python的类中隐藏着一些特殊的私有方法. 这些私有方法不管我 ...

  9. 第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题

    第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 1.原题呈现 2.试题答案 3.题目解析 因博客园无法打出公式等,所以给你们几个小编推荐的链接去看看,在这里小编深感抱歉! https ...

随机推荐

  1. hdoj1045 Fire Net(二分图最大匹配)

    题意:给出一个图,其中有 . 和 X 两种,. 为通路,X表示墙,在其中放炸弹,然后炸弹不能穿过墙,问你最多在图中可以放多少个炸弹? 这个题建图有点复杂orz. 建图,首先把每一行中的可以放一个炸弹的 ...

  2. nginx并发连接控制模块ngx_http_limit_conn_module

    模块: ngx_http_limit_conn_module 作用: 根据定义的key限制并发连接数 配置示例: http { limit_conn_zone $binary_remote_addr ...

  3. 学习Python中的集合

    创建集合 使用工厂方法 set()和 frozenset(): >>> s = set('cheeseshop') >>> s set(['c', 'e', 'h' ...

  4. javaWeb登录注册页面

    简单的登陆注册页面 1.配置JDBC驱动连接数据库 2. 配置struts2框架 3. 利用1 2完成登录页面, 注意做到不耦合,即servlet Api和控制器完全脱离) 4. 利用1 2 制作注册 ...

  5. 《JAVA与模式》之合成模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述合成(Composite)模式的: 合成模式属于对象的结构模式,有时又叫做“部分——整体”模式.合成模式将对象组织到树结构中,可以用来描述 ...

  6. Github只下载某一目录的文件

    比如要下载: https://github.com/xubo245/SparkLearning/tree/master/docs 将“tree/master”改成“trunk https://gith ...

  7. 【BZOJ4916】神犇和蒟蒻 杜教筛

    题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4916 第一个询问即求出$\sum_{i=1}^{n} { \mu (i^2)} $,考虑 ...

  8. 简述ARP请求过程(同一子网和不同子网)

    1. 同一子网 主机A在准备构造链路层以太网帧头时,首先根据目的IP去查找ARP表,如果找到对应项,则直接得到目的MAC地址,如果没有查到才执行上面所说的ARP广播请求.这样做是为了最大限度地减少广播 ...

  9. Numpy基础总结

    一.文件读取 numpy.genfromtxt() 可以用来读取各种文件.常用语法大致如下: numpy.genfromtxt(fname, dtype=<type 'float'>, d ...

  10. Innosetup新增Wizard Page

    Innosetup 新增一个向导页面,让用户选择安装方式 转载于:http://www.docin.com/p-612536939.html 在Innosetup的向导页面中,新增一个页面,提供两种安 ...