第二十四天- 模块导入 import from xxx import xxx
# 模块:
# 模块就是⼀个包含了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的更多相关文章
- Python第二十四天 binascii模块
Python第二十四天 binascii模块 binascii用来进行进制和字符串之间的转换 import binascii s = 'abcde' h = binascii.b2a_hex(s) # ...
- javaSE第二十四天
第二十四天 363 1:多线程(理解) 363 (1)JDK5以后的Lock锁 363 A:定义 363 B:方法: 364 C:具体应用(以售票程序为例) 364 ...
- NeHe OpenGL教程 第二十四课:扩展
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Gradle 1.12用户指南翻译——第二十四章. Groovy 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- SQL注入之Sqli-labs系列第二十四关(二阶注入)
开始挑战第二十四关(Second Degree Injections) 0x1 前言 SQL注入一般分为两类:一阶SQL注入(普通SQL注入),二阶SQL注入 .二次注入不是注入两次的意思,请不要混淆 ...
- “全栈2019”Java多线程第二十四章:等待唤醒机制详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java第二十四章:流程控制语句中决策语句switch下篇
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘
孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天发现了python的类中隐藏着一些特殊的私有方法. 这些私有方法不管我 ...
- 第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题
第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 1.原题呈现 2.试题答案 3.题目解析 因博客园无法打出公式等,所以给你们几个小编推荐的链接去看看,在这里小编深感抱歉! https ...
随机推荐
- 六,apache修改默认根文件路径
1,安装完apache后,项目默认根路径是E:\Program Files\AppServ\www. 默认根路径在httpd.conf中默认配置过了,我们可以通过修改配置文件改变项目默认根路径. Do ...
- FunDA(5)- Reactive Streams:Play with Iteratees
FunDA的设计目标就是把后台数据库中的数据搬到内存里,然后进行包括并行运算的数据处理,最后可能再对后台数据库进行更新.如果需要把数据搬到内存的话,那我们就必须考虑内存是否能一次性容纳所有的数据,有必 ...
- Flask从入门到精通之模型定义
模型这个术语表示程序使用的持久化实体.在ORM 中,模型一般是一个Python 类,类中的属性对应数据库表中的列. Flask-SQLAlchemy 创建的数据库实例为模型提供了一个基类以及一系列辅助 ...
- 双向一对一映射@OneToOne
双向一对一的实例我已经上传到GitHub,entrance项目上了,感兴趣的可以下载下来跑跑,这里讲两个在运行过程中遇到的问题. 问题一:上一篇博客的最后我留下了问题.一对一关联查询注解@OneToO ...
- leetcode-917-仅仅反转字母
题目描述: 给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转. 示例 1: 输入:"ab-cd" 输出:"dc-b ...
- 【bzoj4240】 有趣的家庭菜园 树状数组
这一题最终要构造的序列显然是一个单峰序列 首先有一个结论:一个序列通过交换相邻的元素,进行排序,最少的交换次数为该序列的逆序对个数 (该结论很久之前打表意外发现的,没想到用上了.....) 考虑如何构 ...
- Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, but CLSID_VirtualBox w/ IUnknown works.
我是 win7 64位 解决办法: 1, win+r 快捷键打开 “运行”,输入regedit 打开注册表 2,找到 HKEY_CLASSES_ROOT\CLSID\{00020420-0000-00 ...
- jetbrains golang IDE
非常好的IDE,叫goland. 支持最新的golang1.8了 下载地址: https://www.jetbrains.com/go/ 开始使用手册: https://www.jetbrains.c ...
- 【转】Hadoop vs Spark性能对比
原文地址:http://www.cnblogs.com/jerrylead/archive/2012/08/13/2636149.html 基于Spark-0.4和Hadoop-0.20.2 1. K ...
- caffe, caffe2, paddlepaddle, tensorflow对于cuda,cudnn,protobuf依赖的纠葛
由于在学习神经网络,为了尝试各种深度学习框架,电脑上目前安装了caffe, caffe2, paddlepaddle, tensorflow三款主流框架,但是安装过程中真是痛不欲生. 且不说单单安装一 ...