python使用笔记23--面向对象编程
1.面向对象编程概念
面向对象是包含面向过程
面向过程编程
买车:
1、4s看车,买车
2、上保险 保险公司
3、交税 地税局
4、交管所 上牌
面向对象编程
卖车处:
1、4s
2、保险
3、交税
4、上牌
类
一个模型、一个例子
实例/对象
实例,通过模型来造具体的东西
实例化
把模型变成实例的过程
构造函数
类在实例化的时候,会自动执行
__init__()
1 def __init__(self,name,sex,color): 2 self.name = name 3 self.sex = sex 4 self.color = color 5 print(id(self))
self
本类对象
self就是你实例化的那个变量
self.xxx=xxx
在别的函数里就直接可以用了
析构函数
实例被销毁的时候自动执行的函数
__def__()
1 def __del__(self):#析构函数 2 print('__del__')
私有
不是公共的,只能在类里面调用,不能在类外面调用
函数/变量以__开头,就是私有的
1 def __connect(self):#私有方法 2 self.conn = pymysql.connect(**self.mysql_info) 3 self.cur = self.conn.cursor(pymysql.cursors.DictCursor)
2.面向过程编程小例子
1 import pymysql 2 3 #面向过程 4 mysql_info = {'host':'127.0.0.1', 5 'port':3306, 6 'user':'root', 7 'password':'123456', 8 'autocommit':True, 9 'db':'db001', 10 'charset':'utf8'} 11 12 13 def connect():#连接数据库 14 connect = pymysql.connect(**mysql_info) 15 cursor = connect.cursor() 16 return connect,cursor 17 18 19 def execute(cursor,sql):#执行sql 20 result = cursor.execute(sql) 21 return result 22 23 24 def close(connect,cursor):#关闭连接 25 cursor.close() 26 connect.close() 27 28 29 connect,cursor = connect() 30 sql = 'select * from user_info' 31 result = execute(cursor,sql) 32 close(connect,cursor)
3.面向对象编程小例子
1 class MysqlDB: 2 def __init__(self,mysql_info): 3 self.mysql_info = mysql_info 4 self.__connect() 5 6 def __del__(self):#析构函数,实例被销毁的时候自动执行的函数 7 self.__close() 8 9 def __connect(self):#私有方法 10 self.conn = pymysql.connect(**self.mysql_info) 11 self.cur = self.conn.cursor(pymysql.cursors.DictCursor) 12 13 def execute(self,sql): 14 self.execute(sql) 15 16 def execute_one(self):#select * from user_info where name = 'xxx'; 17 return self.cur.fetchone() 18 19 def execute_all(self):#select * from user_info; 20 return self.cur.fetchall() 21 22 def execute_many(self,limit): 23 return self.cur.fetchmany(limit) 24 25 def __close(self): 26 self.cur.close() 27 self.conn.close() 28 29 30 m = MysqlDB(mysql_info) 31 m.execute('select * from user_info;') 32 result = m.execute_all() 33 print(result)