python之模块使用

news2024/9/25 1:21:29

目录

一、模块

 二、标准模块

collections模块

 三、异常处理

四、文件操作


 

一、模块

 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。 模块让你能够有逻辑地组织你的 Python 代码段。

新建utils的Python包,里面会自带一个__init__.py的初始化文件

_init_.py

__all__=["mysql","redis","xx"]

 mysql.py

url='http:mysql://localhost:3306/db/......'
uname='root'
pwd=123456
driver='com.jdbc.mysql.driver'


class MysqlEntity():
    def fn(self):
        print("~~~~~~~~~~~")
        pass


def getConnection():
 print("mysql 的连接方法被调用")
pass

if __name__ =='__main__':
 print("MYSQL~")

 redis.py

pwd=123456
host='127.0.0.1'
port=6379


class RedisEntity():
    def fn(self):
        print("~~~~~~~~~~~")
        pass


def getConnection():
 print("Redis 的连接方法被调用")
pass

print("Redis ~")

test01.py

# from Python03 import util
# from util import redis
from util import  *
# 重命名 ---- 定义模块名字
# from util import  mysql as l


# 模块里的函数
mysql.getConnection()
# 模块里的类
m=mysql.MysqlEntity()
print(m)
# 模块里的方法
m.fn()
# 变量
print(mysql.uname)

 

 二、标准模块

collections实现了许多特定容器,这些容器在某些情况下可以替代内置容器 dict, list, tuple, set, 原因在于,他们提供了在某个方面更加强大的功能。

collections模块

from collections import deque
#  [列表] /(元组)/{set集合/字典}
# 基本模块collections
d=deque()
print(d)
d.append([1,2,3])
print(d)
print("=================")
d.append({1,2,3})
print(d)
print("=================")
print(d.pop())
d.append((1,2,3))
print(d)
print("=================")
d.remove([1,2,3])
print(d)

singledispatch 单处理的泛型函数

 

 

class Stu(object):
    def wake_up(self):
        print('起床')


class Police:
    def wake_up(self):
        print('起床')


stu = Stu()
police = Police()


def wake_up(obj):
    if isinstance(obj, Stu):
        print('今天周末休息,让孩子们再睡一会')
    elif isinstance(obj, Police):
        print('警察很辛苦,又要起床了')
        obj.wake_up()
    else:
        print('不处理')


wake_up(stu)
wake_up(police)
wake_up('一个字符串')

 

 

from functools import singledispatch


class Stu(object):
    def wake_up(self):
        print('起床')


class Police:
    def wake_up(self):
        print('起床')


stu = Stu()
police = Police()


@singledispatch
def wake_up(obj):
    print('不处理')


@wake_up.register(Stu)
def wake_stu(obj):
    print('今天周末休息,让孩子们再睡一会')


@wake_up.register(Police)
def wake_police(obj):
    print('警察很辛苦,又要起床了')
    obj.wake_up()


wake_up(stu)
wake_police(police)
wake_up('一个字符串')

wraps 装饰器修饰 python标准模块functools提供的wraps函数可以让被装饰器装饰以后的函数保留原有的函数信息,包括 函数的名称和函数的注释doc信息。

# map-reduce  归约

from functools import reduce

bills = [1, 2, 3, 4, 5, 6]
m = map(lambda a: a + 2, bills)
print(list(m))
print(bills)
r = reduce(lambda a, b: a + b, bills)
print(r)


def fn(a, b):
    if isinstance(a, list):
        if b > 3:
            a.insert(0, b)
    return a


r = reduce(lambda a, b: a + b, bills, 10)
print(r)
r = reduce(fn, bills, [10])
print(r)

 三、异常处理

try:
    # print(1/0)
   # print("------------")
    flag =True
    if flag:
      raise  Exception("未知异常")
except ZeroDivisionError as  r:
    print(r)
except Exception as  e:
    print(e)
    print("++++")

else:
    print("正常执行则会触发!")

finally:
    print("释放资源")

 

 

 

四、文件操作

 

# 文件操作
f = open('行尸走肉.txt', 'w+', encoding='utf-8')
try:
    f.write('hello')
    print(f.read()) #模式为'w'会报错
    # f.write('world')
finally:
    # 关闭资源
    # print(f.read())  # 模式为'w'会报错
    f.close()

 with open('a.txt', 'w', encoding='utf-8') as f:
    f.write('hello world')

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/78762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day17【代码随想录】找出字符串中第一个匹配项的下标 、重复的子字符串

文章目录前言一、找出字符串中第一个匹配项的下标(力扣28)二、重复的子字符串(力扣459)前言 1、找出字符串中第一个匹配项的下标 2、重复的子字符串 一、找出字符串中第一个匹配项的下标(力扣28) 给你两个…

LeetCode HOT 100 —— 200 .岛屿问题

题目 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该…

有意思,圣诞节自己做一个装饰圣诞帽头像的APP!

话说又到了一年一度到别人到节日,圣诞节,还记得去年的时候,朋友圈疯狂转发到圣诞帽嘛,在圣诞节为自己到头像增加一款圣诞帽还是蛮应景的。 我们的目标就是是这样的 ❝ 当然,如果你对过程不感兴趣,那么直接到…

总结本人学习b站黑马前端课程,各部分案例汇总

目录 1.Ajax: 对应课程: b站黑马JavaScript的Ajax案例代码——新闻列表案例 b站黑马JavaScript的Ajax案例代码——评论列表案例 b站黑马JavaScript的Ajax案例代码——聊天机器人案例 b站黑马JavaScript的Ajax案例代码——图书管理案例 2.ES6面向对…

HTML-如何让网站变成灰色?

在某些特定的时候,我们经常会看到网站会将整体布局设置成灰色色调,以示哀悼。 那么这是怎么实现的呢? 我去查了下相关的文章,发现是通过CSS的 过滤器函数 实现的,详见:grayscale()。 grayscale:对图片进…

MySql性能优化(三)执行计划详解

执行计划 执行计划执行计划概述idselect_typetabletypepossible_keyskeykey_lenrefrowsextra官网地址 在具体的应用当中,我们排查sql有没有走索引,性能如何,需要查看Sql语句具体的执行过程,以方便我们调整sql来加快sql的执行效率。…

如何通过 IntelliJ IDEA 来提升 Java8 Stream 的编码效率

小新再次推荐一篇 ,主要是讲如何通过 IntelliJ IDEA 来提升 Stream 的编码效率,算是一个小技巧,经常使用 Java8 Stream 流的小伙伴们,可以试下,能够提升工作效率哦! 一、Java8 Stream API 的不友好性 Java…

02优先队列和索引优先队列-优先队列-数据结构和算法(Java)

文章目录1 概述1.1 需求1.2 优先队列特点1.3 优先队列分类1.4 应用场景1.5 相关延伸2 说明3 索引优先队列3.1 实现思路3.2 API设计3.2 代码实现及简单测试5 主要方法讲解5.1 exch()5.2 insert()5.2 poll()6 分析7 后记1 概述 普通的队列是一种先进先出的数据结构,元…

JMeter连接Oracle过程及常见问题总结

如果被测试系统使用的数据库不是MySQL而是Oracle,如何用JMeter进行连接呢? 一、下载数据库驱动 需要确认数据库的版本,可以上网站下载驱动:https://www.oracle.com/database/technologies/jdbc-ucp-122-downloads.html。 或者直…

【Linux】进程间通信-共享内存

前言 我们知道,在Linux中,进程是相互独立存在的,不存在直接让进程之间互相通信的方式。但是如果我们能让不同进程之间见到同一块内存,也就是都能读写这片区域是不是就能够达到进程间通信呢? 事实证明确实如此。在之前我…

【springboot进阶】基于starter项目构建(二)构建starter项目-fastjson

目录 一、创建 fastjson-spring-boot-starter 项目 二、添加 pom 文件依赖 三、构建配置 四、加载自动化配置 五、打包 六、使用 这个系列讲解项目的构建方式,主要使用 父项目 parent 和 自定义 starter 结合。项目使用最新的 springboot3 和 jdk19。本系列的…

kinect v2安装iai_kinect2

目前已完成 前期已经安装了libfreenect2 使用的系统为ubuntu 18.04 使用的相机为kinect v2 已经安装好了orb_slam3,已经完成使用stereo在euroc数据集和使用RGB-D在tum数据集上的测试 目的 想要完成使用深度相机进行在线测试 步骤 step1 经过查阅资料发现目前仅…

大学生HTML期末作业, JavaScript期末大作业

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Java项目:SSM设备台账管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 管理员角色包含以下功能: 管理员登录,物理设备管理,IP地址资源管理,虚拟机管理,通知公告管理,学历管理,部门管理,员工管理等功能。 …

DFS 数据结构 C++语言实现 图的深度优先遍历

1.DFS图解 图的深度优先遍历 1.1 基本定义: 设初始时,图中所有顶点未曾被访问过: ● 从图中某个顶点 v 出发,访问此顶点; ● 依次从 v 的未被访问的邻接点出发深度优先遍历图,直至图中所有和顶点 v 有路…

【非下载vs解决】error: Microsoft Visual C++ 14.0 or greater is required

首先说解决办法 搜索下载对应库的whl文件即可 下面是解决过程 部分报错为:error: Microsoft Visual C 14.0 or greater is required. Get it with “Microsoft C Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/ 我是安装wordcloud库…

Activemq安装和控制台

目录 一、安装 二、后台服务启动 三、查看前台 一、安装 http://blog.csdn.net/gebitan505/article/details/55096222 二、后台服务启动 普通启动/关闭 到activemq的目录下执行【./activemq start/stop】进行开启和关闭activemq 带日志的启动 控制台不输出东西&#x…

Stm32旧版库函数2——mpu6050 移植成旧版兼容型库函数DMP

main.c: /******************************************************************************* // 陀螺仪 MPU6050 IIC测试程序 // 使用单片机STM32F103C8T6 // 晶振:8.00M // 编译环境 Keil uVision4 // 在3.3V的供电环境下,就能运行 // 波特率 9600 /…

STM32通过DAC产生正弦波

前言 这一讲主要来讲解DAC功能 文章目录 前言一、DAC简介二、DAC通道框图三、DAC输出电压四、输出正弦波五、代码一、DAC简介 数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位(1…

[机缘参悟-93]:时间、空间、多维度、动态、全局、系统思考模型汇总

目录 前言: 一、空间 - 广度 - 静态 - 多维度模型 1.1 一元太极本源模型 1.2 二元阴阳组合模型 1.3 三元铁三角稳定模型 1.4 四象限优先级模型 1.5 九宫格二维矩阵模型 二、空间 - 高度 - 静态 - 多层次模型 2.1 倒树形层次模型 2.2 金字塔层次结构模型 …