# 模块:
# 模块就是⼀个包含了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. SpringBoot程序远程debug

    所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内 ...

  2. Python小白学习之路(二十二)—【生成器】

    一.什么是生成器? 生成器可以理解成是一种数据类型,特殊地是生成器可以自动实现迭代器协议其他的数据类型需要调用自己内置的__iter__方法所以换种说法,生成器就是可迭代对象 !回忆:很重要的迭代器协 ...

  3. python多态和鸭子类型

    多态与多态性 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承). 比如:文件分为文本文件,可执行文件(在定义角度) 比如 我们按下 F1 键这个动作: 如果当前在 Fl ...

  4. UR5 改造

    背景 项目要求 UR5 安装在移动平台上,需要做以下改造: 供电:由 220V 市电改为直流电源(锂电池)直接供电: 控制:由示教器控制改为上位机远程控制 线路改造 1. UR5 电气图(来自UR5服 ...

  5. python实现百度地图API获取某地址的经纬度

    申请百度API 1.打开网页 http://lbsyun.baidu.com/index.php?title=首页 选择功能与服务中的地图,点击左边的获取密匙,然后按照要求申请即可,需要手机和百度账号 ...

  6. 剑指offer五十四之字符流中第一个不重复的字符

    一.题目 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  7. django第一课 简单的网页视图

    注意本人django版本2.0      python3.6 第一步:创建自己的django项目 django-admin.py startproject ** 第二步:进入**创建app pytho ...

  8. springboot设置静态资源不拦截的方法

    springboot设置静态资源不拦截的方法 springboot不拦截静态资源需配置如下的类: import org.springframework.context.annotation.Confi ...

  9. Global Embedding 理解

    1.Attention-based seq2seq e(t,i):求上一时刻的输出和这一时刻编码器的输出的相似度 a(t,i):求这个词在整个文本中占多大的比重,每个时刻都存在着一个值,这个只是求一个 ...

  10. centos7设置SSH安全策略–指定IP登陆

    之前自己搭建了个博客网站(理想三旬),写了些文章,但是由于一些原因慢慢将文章放在博客园了.所以这里将一些文章复制过来.便于以后自己查询. 为了服务器的安全性,我们在日常使用需要授予权限和指定ip登陆来 ...