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)
python使用笔记23--面向对象编程的更多相关文章
- python 学习笔记7 面向对象编程
一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." ...
- python学习笔记(七):面向对象编程、类
一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一 ...
- Python学习笔记之面向对象编程(三)Python类的魔术方法
python类中有一些方法前后都有两个下划线,这类函数统称为魔术方法.这些方法有特殊的用途,有的不需要我们自己定义,有的则通过一些简单的定义可以实现比较神奇的功能 我主要把它们分为三个部分,下文也是分 ...
- python学习笔记1 -- 面向对象编程高级编程1
说起高级其实也就是些基础的东西,但是活用和熟用肯定会大幅度提升代码质量 首先要记录的是面向对象的灵活性,及如何去控制其灵活性,她允许你在实例中新增属性和方法,允许你给类新增属性和方法,也支持在定义类时 ...
- python学习笔记1 -- 面向对象编程类和实例
由于之前有一定基础,所以python中的类的概接受的比较快,与其他语言一样, python也是通过类来进行事务的抽象,一切皆对象,要不然怎么说程序员不缺对象呢. 言归正传,python中类的声明是cl ...
- Python:笔记(3)——面向对象编程
Python:笔记(3)——面向对象编程 类和面向对象编程 1.类的创建 说明:和Java不同的是,我们不需要显示的说明类的字段属性,并且可以在后面动态的添加. 2.构造函数 构造函数的功能毋庸置疑, ...
- python自动化测试学习笔记-7面向对象编程,类,继承,实例变量,邮件
面向对象编程(OOP)术语: class TestClass(object): val1 = 100 def __init__(self): self.val2 = 200 ...
- 洗礼灵魂,修炼python(40)--面向对象编程(10)—定制魔法方法+time模块
定制魔法方法 1.什么是定制魔法方法 首先定制是什么意思呢?其实就是自定义了,根据我们想要的要求来自定义.而在python中,其实那些所谓的内置函数,内置方法,内置属性之类的其实也是自定义出来的,不过 ...
- python学习笔记(6)--面向对象学习
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引言 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做(人狗大战)的游戏,你就思 ...
- C++ Primer 学习笔记_69_面向对象编程 --继承情况下的类作用域
面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:假设不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这样的类作用域的层次嵌套使 ...
随机推荐
- wrk(2)- Lua 脚本的使用
背景 要用 wrk 进行压测 看了下其他同事的压测,都用了 Lua 脚本来自定义一些东西 所以这一篇主要讲 Lua 脚本 Lua 介绍 Lua 脚本是一种轻量小巧的脚本语言,用标准 c 语言编写,并以 ...
- Android 小知识点笔记
获取 view 的位置 View.getLocationInWindow(int[] location) 一个控件在其父窗口中的坐标位置 View.getLocationOnScreen(int[] ...
- liunx:网络命令
现系统的学习一下Web渗透相关的命令 ping ping 命令是用来测试TCP/IP 网络是否畅通或者测试网络连接速度的命令,对确定网络是否正确连接,以及网络连接的状况十分有用.简单的说,ping就是 ...
- JMeter执行方式
JMeter执行方式有2种,一种是GUI模式,一种是NO-GUI模式. GUI模式就是界面模式,如下: NO-GUI模式就是命令行模式. 界面模式主要用来编写和调试脚本用的,项目的真正执行最好是采用命 ...
- Open C
Open C UF 公共类型UF_ABORT 进度中断UF_ASSEMUF_ATTRUF_BOUNDUF_BREPUF_CAMUF_CFIUF_CGMUF_CLEARUF_CLONE ...
- Django-Auth模块之auth_user表
一.Auth模块之auth_user表 在创建Django项目之后直接执行数据迁移命令会自动生成许多表. Django在启动之后就可以直接访问admin路由,需要输入用户名和密码,数据参考的就是aut ...
- GCP消息队列Pubsub详解,简单好用还不用自己运维
我最新最全的文章都在南瓜慢说 www.pkslow.com,欢迎大家来喝茶! 1 简介 GCP的Pubsub是一种异步消息传递服务,可将生产事件的服务与处理事件的服务隔离开.消息队列的作用就不多作介绍 ...
- 【LeetCode每日一题 Day 1】1. 两数之和
大家好,我是编程熊,今天是LeetCode每日一题的第一天,今天的你比昨天更加优秀啦! 题意 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target ...
- Vue 两个字段联合校验典型例子--修改密码
1.前言 本文是前文<Vue Element-ui表单校验规则,你掌握了哪些?>针对多字段联合校验的典型应用. 在修改密码时,一般需要确认两次密码一致,涉及2个属性字段.类似的涉及 ...
- AcWing 1134. 最短路计数
给出一个n个顶m 条边的无向无权图,顶点编号为 1 到 n.N. 问从顶点 1开始,到其他每个点的最短路有几条. #include<bits/stdc++.h> #define N 100 ...