python module是干什么的_如何最简单、通俗地理解Python的模块?
目录:
一、笔记
二、笔记目录
一、笔记
1) 模块
① Python模块(Module),是一个Python文件,以.py结尾,包含了Python语句和Python对象定义,模块让你能够有逻辑地组织你的Python代码段。
② 相当于很多类、很多函数包含在一个.py文件,这个.py文件就是一个模块。
③ 模块能定义函数,类和变量,模块里也能包含可执行的代码,即导入模块会自动执行这些代码。
④ 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
⑤ 推荐所有的模块在Python模块的开头部分导入,而且最好按照下面的顺序:1. Python标准库模块
2. Python第三方模块
3. 应用程序自定义模块
⑥ 在Python中用关键字import来引入某个模块,比如要导入模块time,就可以在文件最开始的地方用import time来引入。
# functools就是模块,是一个functools.py文件,该文件在搜索在搜索路径下的,reduce是这个文件中的一个方法。
from functools import reduce
2) import
① import A1. 在调用模块中的函数时,必须加上模块名调用,因为可能存在多个模块中含有相同名称的函数,此时,如果只是通过函数名来调用,解释器无法知道到底要调用哪个函数。为了避免这样的情况,调用函数时,必须加模块名。
2. import time 等价于 from time import *,即把time模块中的所有方法都导入。
import time
# 第一个time是模块,第二个time是方法,要用模块加方法的形式,因为不同模块可能有相同的方法
print(time.time())
运行结果:1605406639.2172427
import time
# print(sleep(2)) # 会报错,它不知道sleep()方法是哪个模块中的,所以不会去调用
print(time.sleep(2)) # 不报错,仅导入模块时,一定要用 模块.方法 的形式
运行结果:None
② from A import b1. 不会把整个模块导入进来,只会把A模块的b方法导入进来(相当于把这个方法写在文件的开头),不能写模块名。
2. 从A模块里导入一个函数或者一个变量 b。
3. from导入模块,import导入类名,实例化时可直接用类名了。
from time import time # 仅仅导入了time模块中time方法
print(time()) # 不会报错,不用加模块名
# print(time.time()) # 报错,相当于仅仅把time方法写在本文件头部,不能加模块名
# print(sleep(1)) # 报错,除非用 from time import time,sleep
# print(time.sleep(1)) # 报错,除非用 import time
运行结果:1605406786.6635635
③ import A as b1. 将A重新命名为b。
# time重命名为t
import time as t
print(t.time()) # 等价于原来的 print(time.time()),但重命名后不可以用 print(time.time())
#print(time.time()) # 报错,无法再用time作为模块名
运行结果:1611287703.3578482
④ from A.B.c import d1. 软件项目来说不可能把所有代码放在一个文件中实现,它们一般会按照一定规则在不同的目录和文件中实现,然后互相调用。
2. 从当前路径下,A文件夹下B文件夹下的c模块中,导入d方法
'''
import p 调用本文件的当前目录下的 p模块
import C.c1 调用当前路径下的C文件夹下的c1.py模块
import C.c2 import c5 调用当前路径下的C文件夹下的c2.py模块中的c5方法
'''
3) 模块内置属性
① __doc__ 为打印文档说明(只能在文件的最开始,import前面,在后面的字符串不会打印),即文档中的字符串。
② __file__为打印本文件的路径。
③ __all__打印过滤变量、函数和类。
'''
import b1
print(__doc__)
print(__file__) # 打印本模块的路径
print(__all__)
print(b1.__doc__)
print(b1.__file__) # b1模块的路径
print(b1.__all__)
'''
4) __all__
① 因为模块中可能包含大量的不需要的变量、函数和类,可以通过设置 __all__起到过滤变量、函数和类的作用,变量 __all__ 包含一个列表。
② 在以import * 方式导入时,会导入任意不以下划线打头的全局名词,有 * 的时候才跟 __all__ 搭配使用, 通过__all__起到过滤。
③ 直接用import b1时,即导入b1模块的时候,在b1模块即使有__all__是没有影响的,可以使用b1模块中的任何变量、函数和类。
④ 模块中不使用__all__属性,则导入模块内的所有共有属性,方法和类。
'''
# 以下是b1文件里代码
__all__ = ['b3','S','b4',b5] # 当用from b1 import * 只能用b3、b4和类S,可以需要过滤的b5,但是未赋值
b3 = 1
b4 = 2
clas S:
pass
def s():
pass
'''
'''
# 当前文件下代码
from b1 import * # 导入b1模块,用 * 使得调用 __all__
b4 = 5
print(b3) # 可以打印b3,为1
print(b4) # 这里打印b4,为5
k = S() # 可以类的实例化
s() # 无法调用函数s()
'''
5) if __name__ == '__main__':
① 当调入别的模块时,通常在模块中写 if __name__ == '__main__': 这样能避免调用其他模块时,这些模块中的函数运行了,但是 if __name__ == '__main__' 以外的函数、变量、类都会运行,相当于把这些抄到了文件的头部,直接运行。
# 以下是b1.py模块内容
print("宝贝入怀")
if __name__ == '__main__':
print("你好")
'''
import b1 # 导入b1模块,会自动运行 if __name__ == '__main__'以外内容,就会打印print("宝贝入怀")
print(__name__) # 代码在当前文件中跑,该模块的文件名__name__不是文件名,而是__main__。
if __name__ == '__main__':
print(b1.__name__) # 导入另一个模块的代码,另一个模块的文件名__name__是文件名b1。
'''
二、我的笔记
01 笔记--Python [ 整理完 ]
02 笔记--机器视觉 [ 整理完 ]
03 笔记--C++ [ 整理完 ]
04 笔记--爬虫 [ 整理ing ]
三、Python 目录
1) Python 编辑器
2) Python 基础
03) Python 难点
04) Python 常用的库
[Python系列 已完结]
( C++、机器视觉、爬虫......系列笔记,见专栏 )
"♥我的笔记,希望对你有帮助♥"
python module是干什么的_如何最简单、通俗地理解Python的模块?相关推荐
- python方向是干什么的_学好Python能做什么?python就业方向有哪些?
学好Python能做什么?python就业方向有哪些?下面就跟着一起来看看吧! 近年来,Python市场火爆,从业人员薪资不断增加,选择学Python的人也在逐年增多.然而,很多人学Python只是盲 ...
- python手机端编程环境_移动端自动化测试解决方案(Appium + Python) - (1) 环境搭建...
最近对iOS自动化测试做了一番探究,希望通过自动化测试更好的去提高公司项目的测试效率 .在网上找了很多的文章和相关资料,都因为时间比较久导致无法实现基本环境的搭建,我在这儿分享给大家分享我的实现过程. ...
- python中digits什么意思_在Caffe中使用 DIGITS自定义Python层
Caffe 使得我们有了使用Python自定义层的能力,而不是通常的C++/CUDA.这是一个非常有用的特性,但它的文档记录不足,难以正确实现本演练将向您展示如何使用DIGHT来学习实现Python层 ...
- python 数组合并排重_并排深度学习:Julia vs Python
python 数组合并排重 Julia could possibly be the biggest threat to Python. For a variety of applications, J ...
- python下载之后无法启动_安装后启动时,适用于Python的Eric IDE崩溃
On Windows 7 I successfully installed Python 3.73 and then installed Eric 6, the Python IDE. 安装似乎已成功 ...
- 为什么一个程序中变量只能定义一次_#带你学Python# 从简单程序出发理解Python基本语法
欢迎回来. 通过上一篇文章,我们第一次触摸了Python,学会了如何用各种不同的方式运行Python的解释器.也介绍了很多工具和开发环境,是不是跃跃欲试了? 到这里,别的python教程就会从数据类型 ...
- python难度大的题_早看少被坑!Python 最难的问题
超过十年以上,没有比解释器全局锁(GIL)让Python新手和专家更有挫折感或者更有好奇心. 未解决的问题 随处都是问题.难度大.耗时多肯定是其中一个问题.仅仅是尝试解决这个问题就会让人惊讶.之前是整 ...
- python构造方法与java区别_一张图秒懂Java和Python的区别,你知道吗?
对于程序员的语言千千万JAVA\C\C++\PHP\Python不同的程序员使用着不同的语言,做着功能相似需求却不同的产品. 但是最近Python在人工智能的推动下突然出现在人们的面前,其实和Java ...
- python有什么用处案例_为什么大家都推荐你学python?看完这5个例子就明白了!...
为什么大家都推荐你学Python?而不是C语言或者是JAVA呢? 因为-- python很灵活,一定程度上函数也可以传参和注入,所以代码的灵活性要大的多. python自带了函数的curry化以及迟滞 ...
最新文章
- WF4.0进行单元测试
- python中查询某个函数的使用方法
- 存储系统的类型及特点
- 如何线程安全的使用HashMap
- 操作系统内存管理之 内部碎片vs外部碎片
- 近期低分纯生信友好的期刊简介
- python入门需要什么基础知识_Python 基础之:入门必备知识
- js 遍历对象的几种方法
- mysql 把一列转多行_Oralce 按分隔符把一列转成多行
- [leetcode]476. 数字的补数
- python类中的特殊方法_Python中类的初始化特殊方法
- Adobe各种最新版本软件下载 PhotoShop Dreamweaver FW Ai Fl.....
- 如何寻找综述性论文?
- 斐波那契常见规律(总结)
- 买卖二手3C成了“拆盲盒”,究竟是谁之责?
- 百度seo指南_白杨SEO:如何让网页被百度收录以及提高它的排序?
- 360 ie8兼容模式 网页兼容问题
- SWUSTOJ #954 单链表的链接
- 2017长乐国庆欢乐赛Day1
- 微信小程序动态点赞php,微信小程序小组件 基于Canvas实现直播点赞气泡效果
热门文章
- 第一章 计算机、程序和Java概述 复习题 解答
- Microsoft Ajax Beta1 - 边学边用边补充 (Part 2 - DragDropList)
- C#使用Aspose.Words操作word文档(利用模板2)
- uni-app 实现点击列表隐藏显示
- IOS开发之CALayer基本属性和使用
- docker安装测试及问题解决
- SQL注入——基于报错的注入(五)
- 教师计算机校本培训记录,信息技术教师个人校本培训总结
- css实现loading,CSS3 19种LOADING(加载)动效
- linux 快速启动程序,在Linux上安装ULauncher快速启动应用程序的方法