python 中使用with简化MySQL 和 Socket 的连接

 
数据库 : 


from pymysql import *

class DB(object):
    def __init__(self):
        self.conn = connect(host='localhost', port=3306, database='python_test_1', user='root', password='mysql', charset='utf8')
        self.cos = self.conn.cursor()
        # self.num = self.cos.execute()

    def __enter__(self):
        return self.cos

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.conn.commit()
        self.conn.close()
        self.cos.close()


with DB() as db:
    num = db.execute("""insert into classes(name) values("python9") """)
socket 的with简化代码 :
# 导包
from socket import *

# 定义一个套接字的类
class sock(object):
    # 把一些固定的语句放入init中
    def __init__(self):
        self.server_soc = socket(AF_INET, SOCK_STREAM)
        self.server_soc.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
        self.server_soc.bind(("",1314))
        self.server_soc.listen(1024)

    # 将需要返回的数据放入return
    def __enter__(self):
        self.client_soc, client_addr = self.server_soc.accept()
        content = self.client_soc.recv(1024)
        return content.decode("utf-8")

    # 关闭套接字
    def __exit__(self, exc_type, exc_val, exc_tb):
        self.server_soc.close()
        self.client_soc.close()

while True:
    with sock() as soc:
        print(soc)


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值