经典的笔试题python操作数据库和python设计模式【多测师_王sir】
#coding=utf-8 """ =========================== Author:多测师_王sir Time:2020-12-11 12:00 Wechat:xiaoshubass website:www.duoceshi.cn =========================== """ #第一题 单例设计模式代码如下: class MyClass(object): __obj = None @classmethod def __new__(cls, *args, **kwargs): if not cls.__obj: #如果没有创建对象、就调用父类的new方法创建一个 cls.__obj = super().__new__(cls) return cls.__obj else: #如果创建了、则把第一次的对象返回 return cls.__obj #实例化==》创建对象 m1 = MyClass() m2 = MyClass() m3 = MyClass() print(id(m1)) print(id(m2)) print(id(m3)) #运行结果:内存地址都是一样的、说明根据MyClass类创建的对象都是同一个对象。 #第二题 import pymysql class Db_Utils: def __init__(self): '''把连接数据库的参数设置为实例变量''' self.host = '192.168.112.129' self.user='root' self.password='123456' self.database='dcs8' self.port=3306 def get_connection(self): '''封装一个创建数据库连接的对象''' db = pymysql.connect(self.host,self.user,self.password,self.database,self.port) return db def find_one(self,sql): '''封装一个查询表中1条数据的工具方法''' db = self.get_connection() #对象调用实例方法 cursor = db.cursor() #创建一个游标对象 cursor.execute(sql) one = cursor.fetchone() #提取表中的第一条数据 return one def delete_one(self,del_sql,select_sql): '''封装一个删除表中指定某一条数据并且查询结果的工具方法''' db = self.get_connection() #或者数据库的连接对象 cursor = db.cursor() cursor.execute(del_sql) #执行删除SQL语句 cursor.execute(select_sql) #执行查询SQL语句 db.commit() #如果出现执行了删除却没有删除成功则执行commit方法、commit会把删除和查询事务进行提交 all = cursor.fetchall() return all if __name__ == '__main__': m = Db_Utils() #创建一个对象 # print(m.find_one('select * from test;')) print(m.delete_one('delete from test where id = 4;','select * from test;'))