python语言使用什么语句实现上下文管理协议,python上下文管理器
本文主要介绍python上下文管理器协议的实现。在python中,实现上下文管理器协议的所有对象都可以使用with操作,而with启动对象的上下文管理器。
00-1010前言TODO 3360版本1 TODO 3360版本2
目录
在上下文管理器协议的过程中,涉及到两个神奇的方法__enter__和__exit__。
在python中,所有实现上下文管理器协议的对象都可以使用上下文管理器上下文管理器协议:,它通过with操作启动对象。
在__enter__方法: 中输入enter方法返回的结果由后面的变量as接收。exit: 带着。with中的所有语句都被执行和执行。执行退出实现一个简单的文件操作来看下上下文管理器协议:.
近视:级
#实例化
def __init__(自身,文件名,模式,编码):
self.filename=文件名
self.mode=模式
自编码=编码
def __enter__(self):
打印(-enter-method )
#执行文件打开操作
self.f=open(self.filename,self.mode,encoding=self.encoding)
回归自我
def __exit__(self,exc_type,exc_val,exc_tb):
3360 paramexc _ type3360异常类型
3360 Paramexc _ Val3360异常信息
3360 ParamExc _ TB :异常跟踪对象
:返回:
打印(-回车-)
self.f.close()
用MyOpen(hr.txt , w ,编码=utf-8 )作为f:
Print(f.write(文件当前已打开,数据已写入:23323232 ))
用pymysql实现一个操作数据库的类,实现上下文管理器协议,退出上下文时自动关闭光标并断开连接。
前言
# todo:版本1:
类mysql_db(对象):
#实例化属性
def __init__(self):
1.连接数据库
self.cou=pymysql.connect(
Host=数据库主机地址,
Port=端口,
User=登录数据库的帐号,
Password=登录数据库的密码,
Database=数据库名称,
Charset=utf8 ,编码格式
cursor class=pymysql . cursors . dict cursor将默认的元组格式转换为字典格式并输出。
)
2.创建游标
self.cur=self.cou.cursor()
def __enter__(self):
Self.cur返回cur对象。
def __exit__(self,exc_type,exc_val,exc_tb):
3360 paramexc _ type3360异常类型
3360 Paramexc _ Val3360异常信息
3360 ParamExc _ TB :异常跟踪对象
:返回:
#关闭光标
self.cur.close()
#关闭数据库连接
self.cou.close()
def获取日期():
用mysql_db()作为db:
DB。execute( select * from t _ customer limit 4 )使用EXECUTE方法来生成查询语句。
Content=db.fetchone()返回一段数据的查询结果
打印(内容)
#函数调用
获取日期()
todo:版本1
SQL= select * from t _ customer LIMIT 4
def mysql_db1(**kwargs):
返回pymysql . connect(host=kwargs . get( host , xxxx ),
user=kwargs.get(user , xxxx ),
passwd=kwargs.get(passwd , xxxx ),
database=kwargs.get(database , xxxx ),
port=kwargs.get(port ,xxxx),
charset=kwargs.get(charset , utf8 ))
1.创建数据库连接对象
cou=mysql_db1()
2.创建游标
用cou.cursor()作为cu:
Cu.execute(sql)使用execute方法生成查询语句。
Commt=cu.fetchone()返回数据的查询结果。
打印(commt)
#函数调用
mysql_db1()
关于python上下文管理器协议实现的这篇文章到此为止。有关python上下文管理器的更多信息,请搜索流行的IT软件开发工作室以前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。