首页 技术 正文
技术 2022年11月19日
0 收藏 728 点赞 3,846 浏览 2567 个字

Python 【模块】

A 什么是模块

最高级别的程序组织单元(模块什么都能封装)

模块中,我们不但可以直接存放变量,还能存放函数,还能存放类

定义变量需要用赋值语句,
封装函数需要用def语句,
封装类需要用class语句,
但封装模块不需要任何语句(每一份单独的Python代码文件(后缀名是.py的文件)就是一个单独的模块)
——————————————————————————————————————————————
B 封装模块的目的
为了把程序代码和数据存放起来以便再次利用

使用模块主要有两种方式,

一种是自己建立模块并使用,另外一种是使用他人共享的模块
——————————————————————————————————————————————
C 模块相关的常用语句主要有3个

C1 import 语句
目的
并不是运行模块中的执行语句,而是为了利用模块中已经封装好的变量、函数、类

导入模块
要使用模块中的变量、函数、类,需要在使用时加上 模块. 的格式

# 这是主程序main.py
import test    # 导入test模块
print(test.a)  # 使用“模块.变量”调用模块中的变量
test.hi()      # 使用“模块.函数()”调用模块中的函数

A = test.Go2() # 使用“变量 = 模块.类()”实例化模块中的类
print(A.a)     # 实例化后,不再需要“模块.”
A.do2()        # 实例化后,不再需要“模块.”
——————————————————————————————————

 # 【文件:story.py】 sentence = '从前有座山,' def mountain():
print('山里有座庙,') class Temple:
sentence = '庙里有个老和尚,'
def reading(self):
print('在讲一个长长的故事。') # 【文件:main.py】 import story for i in range(10):
print(story.sentence)
story.mountain()
A = story.Temple()
print(A.sentence)
A.reading()
print()

C1.1 import…as…

 import story as s for i in range(10):
print(s.sentence)
s.mountain()
A = s.Temple()
print(A.sentence)
A.reading()
print()

C1.2 同时导入多个模块时,可以用逗号隔开。
比如import a,b,c
同时导入“a.py,b.py,c.py”三个文件
########################################################################
C2 from … import … 语句

Python 【模块】

从模块中导入一个指定的部分到当前模块

 # 【文件:test.py】
def hi():
print('函数“hi”已经运行!') # 【文件:main.py】
from test import hi # 从模块test中导入函数“hi”
hi() # 使用函数“hi”时无需加上“模块.” 前缀

C2.1同时导入多个指定内容,也可以用逗号隔开
from xx模块 import a,b,c
#################注 意 事 项 ##################################
对于from … import …语句要注意的是,没有被写在import后面的内容,将不会被导入
指定所有内容直接使用时,可以写成【from xx模块 import *】的形式,*代表“模块中所有的变量、函数、类”
一般不要直接使用【from xx模块 import *】,因为块.xx的调用形式能通过阅读代码一眼看出是在调用模块中的变量/函数/方法,而去掉模块.后代码就不是那么直观了
###################################################################################################################################################

 【test.py】
a = '我是模块中的变量a' def hi():
a = '我是函数里的变量a'
print('函数“hi”已经运行!') class Go2:
a = '我是类2中的变量a'
def do2(self):
print('函数“do2”已经运行!') 【main.py】
from test import a,hi,Go2 print(a) # 打印变量“a” hi() # 调用函数“hi” A = Go2() # 实例化“Go2”类 #print(Go2.a)
print(A.a) # 打印实例属性“a”
A.do2() # 调用实例方法“do2” 我是模块中的变量a
函数“hi”已经运行!
我是类2中的变量a
函数“do2”已经运行!

C3 if __name__ == ‘__main__’
“程序的入口”

Python 【模块】

Python 【模块】

一大堆py文件组成一个程序的时候,为了【指明】某个py文件是程序的运行入口
# 【文件:xx.py】

代码块 ①……

if __name__ == ‘__main__’:
代码块 ②……

#当xx.py文件被直接运行时,代码块②将被运行”,
#xx.py文件作为模块是被其他程序导入时,代码块②不被运行。

Python 【模块】

##########################################################################

使用他人的模块
下载安装第三方编写的模块的方式

#需要预装python解释器和pip
Windows用户输入pip install + 模块名;
苹果电脑输入:pip3 install + 模块名。

Python的内置模块
内置模块是用Python语言编写的话,就能找到py文件
>>> import random
>>> random.__file__        #查询内置模块地址
‘/usr/local/lib/python3.6/random.py’

如何自学模块

Python 【模块】

阅读官方文档
直接百度搜索
使用案例做成笔记(函数和类方法有什么作用)

dir()函数查看一个模块,看看它里面有什么变量、函数、类、类方法

import random # 调用random模块
print(dir(random)) #dir(random)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,401
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,813
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,896