Python面向对象之模块详解

目录
  • 1.1 导入模块
    • 1.1.1 import 模块名
    • 1.1.2 from 模块名 import 功能名
    • 1.1.3 from …import*
    • 1.1.4 as 定义别名
  • 1.2 制作模块
    • 1.2.1 定义模块
    • 1.2.2 测试模块
    • 1.2.3 外部调用
  • 1.3 模块定位顺序
  • 1.4 all
  • 总结

1.1 导入模块

  • import 模块名
  • form 模块名import 功能名
  • form 模块名 import *
  • import 模块名 as 别名
  • import 模块名 import 功能名 as 别名

以下用math模块下的 sqrt 验证

1.1.1 import 模块名

语法

 # 1 导入模块
 import 模块名  # 推荐使用此种格式
 import 模块名1,模块名2.... # 不推挤
   # 2 调用
 模块名.功能名()

体验

	import math
	print(math.sqrt(9))

1.1.2 from 模块名 import 功能名

语法

# 1 导入
from 模块名 import 功能1,功能2....
# 2 调用
功能()

体验

	from sqrt import math
	print(sqrt(9))

1.1.3 from …import*

语法

from 模块名 import*

体验

	from math import*
	print(sqrt(9))

1.1.4 as 定义别名

把复杂的长的 不好记的模块名\功能名, as成简单的

语法

# 模块定义别名
import 模块名 as 别名
# 功能定义别名
from 模块名 import 功能 as 别名

体验

import math as  m
print(m.srqt(9))
from math import srqt as s
print(s(9))

代码

# --*coding:utf-8*--
# 需求 验证math模块下的 sqrt()开平方计算
"""
步骤
1 导入math模块
2  验证sqrt功能 : 调用该模块下的sqrt功能
"""
# 方法一 : import 模块名;模块名.功能
import math
print(math.sqrt(9))
# 方法二 :from 模块名 import 功能,功能...;功能调用(功能())
from math import sqrt
print(sqrt(6))
# 方法三 :from 模块名 import*  ;调用功能
from math import *
print(sqrt(16))
# 方法四-模块别名: import 模块名 as 别名;调用功能  别名.功能
import math as mm
print(mm.sqrt(16))
# 方法四-功能别名: from math import sqrt as ss
from math import sqrt as ss
print(ss(9))

1.2 制作模块

在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件名

自定义模块名必须符合标识符命名规则

目标

  • 作用
  • 制作步骤和书写代码
  • 掌握注意事项

为啥要制作模块:

程序员在开发中,对于一些频繁使用的代码,进行封装 ,制作成一个满足需要的模块,在之后的工资中再去调用

1.2.1 定义模块

新建一个Python文件,命名my_module1.py,并定义testA函数

	# 此处 : 此模块相关的解释性文字,如 一个函数 完成任意两个数字相加
	def testA(a,b):
		print(a+b)

1.2.2 测试模块

写完一个模块, 测试里面是否有bug

在实际的开发中, 当一个开发人员编写完一个模块后, 为了让模块能够在项目中达到想要的效果, 这个开发人员会自行在py文件中加入一些测试信息,例如在 my_module1.py中添加测试代码.

def testA(a,b):
	print(a+b)
testA(5,6)

此时,无论当前文件,还是其他导入了该模块的文件, 在运行时,都会执行testA函数的调用. 特别是 其他函数调用是 会一并调用了 测试函数,这是我们不希望看到的.

解决办法如下:

引入 name 系统变量, 上面的代码变成

# --*coding:utf-8*--
# 需求 :一个函数  完成任意两个数字相加
def testA(a,b):
    print(a+b)
# 测试信息
# text(5,6)  # 验证1  这样会在其他函数调用时,被执行
"""
 验证2  print(__name__)
 测试 在当前函数下,和被其他文件调用时,返回结果:
 内部  返回  __main__
 外部  返回 本函数名
"""
# 根据 __name__ 特性,做if 判断
if __name__ == "__main__":
    testA(2,5)
"""=====输出==自身调用的时候 执行测试语句=="""
7

1.2.3 外部调用

# --*coding:utf-8*--
# 导包
import my_module1
# 调用 模块名.功能
my_module1.testA(6,12)
"""==输出==外部调用是 不执行测试代码=="""
18

1.3 模块定位顺序

当导入一个模块,Python解析器对模块位置的搜索顺序是 由近及远

  • 当前模块
  • 当前没有, 则搜索在shell变量PYTHONPATH下的每个目录
  • 还没有,Python会查看默认路径(不同的系统不一样),如 unix下,默认路径为 /usr/local/lib/Python

** PYTHONPATH 安装程序是的默认目录

注意

  • 自己的文件名 不要和已有的模块名重复, 否则会导致模块功能无法使用
  • 使用from 模块名 import 功能 的时候, 如果功能名字重复, 谁后面 ,谁起作用.

1.4 all

目标

  • 什么是__all__列表
  • 作用
  • 写代码 分析作用 体验

什么是all列表 就是模块中的一个变量,取值是一个列表[]的形式

作用:当模块中有__all__时,如果使用from 模块名 import * 导入时,只能导入这个all后面列表的元素

my_module1模块代码

___all__=["testA]
def testA():
	print("我是testA")
def testB():
	print("我是testB")

执行结果是 :

我是testA

如果没有__all__=[] 变量

执行结果将是: all 所有的

我是testA
我是testB

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Python入门之模块与包

    模块指的是Python的程序文件(源文件),模块的文件名就是模块名加上.py,里面包含了Python对象定义和Python语句,模块包含了定义函数.类和执行代码等等.模块提高了代码的可维护性.模块提高了代码的可重用性.模块避免了函数名和变量名冲突. 在Python中,模块可以分为3类,内置标准模块.自定义模块.第三方模块 一.模块导入 1. import 语句: 想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下: 语法: import module1[, mo

  • python os模块介绍

    目录 1.os 库基本介绍 2.路径操作 3.进程管理 4.环境参数 1.os 库基本介绍 os库提供通用的.基本的操作系统交互功能. 三大操作系统: windows Mac OS Linux os 库是python标准库,包含几百个函数 常用路径操作.进程管理.环境参数等好多类 2.路径操作 os.path子库,用来处理文件路径及信息 os.path子库以path为入口 (文件路径有很多操作啦,截一些mooc的图放上来) import os.path #或者 import os.path as

  • Python random模块的运用详解

    目录 1.随机取小数: 2.整数的随机选取: 3.随机列表取数,元素打乱: 总结 1.随机取小数: import random print(random.runiform(a,b)) #a-b之间小数的选取 print(random.random()) #0-1之间小数随机选取 输出:0.03815542754382306 print(random.uniform(2,4)) 输出:3.560120761832978 2.整数的随机选取: import random print(random.r

  • Python随机数模块详情

    目录 1.生成随机数 1.1 random.random() 方法 1.2 random.randint方法 1.3 random.uniform方法 1.4 random.randrange方法 2.用于序列的函数 2.1 random.choice(seq) 2.2 random.shuffle()方法 2.3 random.sample()方法 前言: 随机数模块实现了各种分布的伪随机数生成器.对于整数,从范围中有统一的选择. 对于序列,存在随机元素的统一选择.用于生成列表的随机排列的函数

  • Python函及模块的使用

    目录 1.函数的作用 2.定义函数 3.函数的参数 3.1 参数的默认值 3.2 可变参数 4.用模块管理函数 4.1 示例代码module.py 5.变量的作用域 1.函数的作用 编程大师Martin Fowler先生曾经说过:"代码有很多种坏味道,重复是最坏的一种! ". 可以将重复的功能封装到一个称之为"函数"的功能模块中,用来实现单一,或相关联功能的代码段. 2.定义函数 定义函数的规则如下所示: 函数代码块以 def 关键词开头,后接函数名和圆括号 ()

  • 详解Python语法之模块Module

    目录 一.定义 二.作用 三.导入 1.import导入 import 模块名 from import from 模块名 import * 总结 一.定义 包含一系列数据,函数,类的文件,通常以.py结尾 二.作用 让一些相关的数据,函数,类有逻辑的组织在一起,使用逻辑有利于多人合作开发 三.导入 1.import导入 import 模块名 1.语法: import 模块名 import 模块名 as 别名 as:为导入的成员起一个另外的别名,避免冲突 2 作用:将某模块整体导入到当前模块中 3

  • Python面向对象之模块详解

    目录 1.1 导入模块 1.1.1 import 模块名 1.1.2 from 模块名 import 功能名 1.1.3 from -import* 1.1.4 as 定义别名 1.2 制作模块 1.2.1 定义模块 1.2.2 测试模块 1.2.3 外部调用 1.3 模块定位顺序 1.4 all 总结 1.1 导入模块 import 模块名 form 模块名import 功能名 form 模块名 import * import 模块名 as 别名 import 模块名 import 功能名 a

  • Python正则表达式re模块详解(建议收藏!)

    目录 前言 match 匹配字符串 单字符匹配 . 匹配任意一个字符 \d 匹配数字 \D 匹配非数字 \S 匹配非空白 \w 匹配单词.字符,如大小写字母,数字,_ 下划线 \W 匹配非单词字符 [ ] 匹配[ ]中列举的字符 表示数量 * 出现0次或无数次 + 至少出现一次 ? 1次或则0次 {m,} 至少出现m次 匹配边界 $ 匹配结尾字符 ^ 匹配开头字符 \b 匹配一个单词的边界 \B 匹配非单词边界 匹配分组 | 匹配左右任意一个表达式 (ab) 将括号中字符作为一个分组 searc

  • python中random模块详解

    Python中的random模块用于生成随机数,它提供了很多函数.常用函数总结如下: 1. random.random() 用于生成一个0到1的随机浮点数: 0 <= n < 1.0 2. random.seed(n) 用于设定种子值,其中的n可以是任意数字.random.random() 生成随机数时,每一次生成的数都是随机的.但是,使用 random.seed(n) 设定好种子之后,在先调用seed(n)时,使用 random() 生成的随机数将会是同一个. 3. random.unifo

  • python爬虫selenium模块详解

    selenium模块 selenium基本概念 selenium优势 便捷的获取网站中动态加载的数据 便捷实现模拟登陆 selenium使用流程: 1.环境安装:pip install selenium 2.下载一个浏览器的驱动程序(谷歌浏览器) 3.实例化一个浏览器对象 基本使用 代码 from selenium import webdriver from lxml import etree from time import sleep if __name__ == '__main__': b

  • Python中BeautifulSoup模块详解

    目录 前言 安装库 导入库 解析文档示例 提取数据示例 CSS选择器 实例小项目 总结 前言 BeautifulSoup是主要以解析web网页的Python模块,它会提供一些强大的解释器,以解析网页,然后提供一些函数,从页面中提取所需要的数据,目前是Python爬虫中最常用的模块之一. 安装库 在使用前需要安装库,这里建议安装bs4,也就是第四版本,因为根据官方文档第三版的已经停止更新.同时安装lxml解释器 pip3 install bs4 pip3 install lxml 导入库 from

  • Python基础之模块详解

    目录 一.模块 1.模块的四种形式 2.为什么要用模块? 二.如何用模块 1.import 模块名 导入重命名:smt变量指向span模块的名称空间 导入多个模块 2.from 模块名 import 具体的函数 rom … import * 语句:导入文件内所有的功能: 3.循环导入 4.dir() 函数 三.模块搜索路径 1.导入模块时查找模块的顺序 1.先从内存中已经导入的模块中寻找 2.内置的模块 3.环境变量sys.path中找(强调:sys.path的第一个值是当前执行文件的所在的文件

  • python中os模块详解

    os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径,父目录-- os.sep可以取代操作系统特定的路径分隔符.windows下为 "\\",Linux下为"/" os.linesep字符串给出当前平台使用的行终止符.例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'. os.pathsep 输出用于分割文件路径的字符串,系统使用此字符来分割搜索路径(像PATH),例如POSIX上'

  • python队列queue模块详解

    队列queue 多应用在多线程应用中,多线程访问共享变量.对于多线程而言,访问共享变量时,队列queue是线程安全的.从queue队列的具体实现中,可以看出queue使用了1个线程互斥锁(pthread.Lock()),以及3个条件标量(pthread.condition()),来保证了线程安全. queue队列的互斥锁和条件变量,可以参考另一篇文章:python线程中同步锁 queue的用法如下: import Queque a=[1,2,3] device_que=Queque.queue(

  • Python之re模块详解

    目录 Python--re模块 简介 预定义字符 特殊字符 反斜杠问题 匹配方法 总结 Python--re模块 简介 定义:re模块称为正则表达式: 作用:创建一个"规则表达式",用于验证和查找符合规则的文本,广泛用于各种搜索引擎.账户密码的验证等: 预定义字符 """ \d 匹配所有的十进制数字 0-9 \D 匹配所有的非数字,包含下划线 \s 匹配所有空白字符(空格.TAB等) \S 匹配所有非空白字符,包含下划线 \w 匹配所有字母.汉字.数字 a

  • python 面向对象三大特征详解

    目录 一.面向对象三大特征介绍 1.封装(隐藏) 2.继承 3.多态 二.继承 1.语法格式 2.类成员的继承和重写 3.super()获得父类定义 4.设计模式_工厂模式实现 5.设计模式_单例模式实现 总结 一.面向对象三大特征介绍 Python 是面向对象的语言,也支持面向对象编程的三大特性:继承.封装(隐藏).多态. 1.封装(隐藏) 隐藏对象的属性和实现细节,只对外提供必要的方法. 通过"私有属性.私有方法"的方式,实现"封装".Python 追求简洁的语

随机推荐