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--面向对象编程的更多相关文章

  1. python 学习笔记7 面向对象编程

    一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." ...

  2. python学习笔记(七):面向对象编程、类

    一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一 ...

  3. Python学习笔记之面向对象编程(三)Python类的魔术方法

    python类中有一些方法前后都有两个下划线,这类函数统称为魔术方法.这些方法有特殊的用途,有的不需要我们自己定义,有的则通过一些简单的定义可以实现比较神奇的功能 我主要把它们分为三个部分,下文也是分 ...

  4. python学习笔记1 -- 面向对象编程高级编程1

    说起高级其实也就是些基础的东西,但是活用和熟用肯定会大幅度提升代码质量 首先要记录的是面向对象的灵活性,及如何去控制其灵活性,她允许你在实例中新增属性和方法,允许你给类新增属性和方法,也支持在定义类时 ...

  5. python学习笔记1 -- 面向对象编程类和实例

    由于之前有一定基础,所以python中的类的概接受的比较快,与其他语言一样, python也是通过类来进行事务的抽象,一切皆对象,要不然怎么说程序员不缺对象呢. 言归正传,python中类的声明是cl ...

  6. Python:笔记(3)——面向对象编程

    Python:笔记(3)——面向对象编程 类和面向对象编程 1.类的创建 说明:和Java不同的是,我们不需要显示的说明类的字段属性,并且可以在后面动态的添加. 2.构造函数 构造函数的功能毋庸置疑, ...

  7. python自动化测试学习笔记-7面向对象编程,类,继承,实例变量,邮件

    面向对象编程(OOP)术语: class TestClass(object):   val1 = 100       def __init__(self):     self.val2 = 200   ...

  8. 洗礼灵魂,修炼python(40)--面向对象编程(10)—定制魔法方法+time模块

    定制魔法方法 1.什么是定制魔法方法 首先定制是什么意思呢?其实就是自定义了,根据我们想要的要求来自定义.而在python中,其实那些所谓的内置函数,内置方法,内置属性之类的其实也是自定义出来的,不过 ...

  9. python学习笔记(6)--面向对象学习

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.   引言 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做(人狗大战)的游戏,你就思 ...

  10. C++ Primer 学习笔记_69_面向对象编程 --继承情况下的类作用域

    面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:假设不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这样的类作用域的层次嵌套使 ...

随机推荐

  1. GO语言常用标准库01---strings包

    package main import ( "fmt" "strings" ) func main031() { fmt.Printf("字符形式:% ...

  2. Thumb扩展

    Thumb扩展 ARM处理器已在嵌入式系统,手持计算机和其系统中得到了最大的应用,在这些系统中,系统对使用有限资源进行大量工作的要求很高.Thumb扩展是为解决资源消耗中的某些方面而创建的,已成为当今 ...

  3. 深入理解java虚拟机笔记Chapter12

    (本节笔记的线程收录在线程/并发相关的笔记中,未在此处提及) Java内存模型 Java 内存模型主要由以下三部分构成:1 个主内存.n 个线程.n 个工作内存(与线程一一对应) 主内存与工作内存 J ...

  4. 【NX二次开发】Block UI 图层

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  5. 【SQLite】教程02-SQLite命令

    获取帮助 sqlite> .help 获得以下帮助: 命令 描述 .backup ?DB? FILE 备份 DB 数据库(默认是 "main")到 FILE 文件. .bai ...

  6. anaconda安装VSCODE后,python报错

    重新用anaconda时遇到了一点问题. 测试anaconda捆绑安装的VSCODE时写了一行print(1),然后报错. 后来发现用anaconda下载vscdoe时并不会给python一个路径,这 ...

  7. 『心善渊』Selenium3.0基础 — 1、Selenium自动化测试框架介绍

    目录 1.Selenium介绍 2.Selenium的特点 3.Selenium版本说明 4.拓展:WebDriver与Selenium RC的区别 5.Webdriver工作原理 1.Seleniu ...

  8. Spring Reactor 入门与实践

    适合阅读的人群:本文适合对 Spring.Netty 等框架,以及 Java 8 的 Lambda.Stream 等特性有基本认识,希望了解 Spring 5 的反应式编程特性的技术人员阅读. 一.前 ...

  9. noip模拟6[辣鸡·模板·大佬·宝藏]

    这怕不是学长出的题吧 这题就很迷 这第一题吧,正解竟然是O(n2)的,我这是快气死了,考场上一直觉得aaaaa n2过不了过不了, 我就去枚举边了,然后调了两个小时,愣是没调出来,然后交了个暴力,就走 ...

  10. 【模拟7.27】单(liu_runda学长的神题)

    好像用到一些高中数学知识...... 满分做法: case 0:已知a数组求b数组 因为是树状结构,设当前节点x 儿子to 我们从任意一点出发可求出b[root]来,之后我们可以通过寻找两两相连节点的 ...