面向对象: 类,对象

函数放在类里,叫方法

封装

#如何调用

1. 创建对象, 类名()

obj= Foo()

2. 通过对象去执行方法

obj.mail("leon@me.com","NB")

----------------创建-------------------

a.创建类

  class 类名:

    def 方法名(self,xxxx):

       pass

b. 创建对象

  对象 = 类名()

c. 通过对象执行方法

  对象.方法名(123)

-----------------创建--------------------  

创建对象时候,有一个类对象指针指向类

对象是由类创建的,对象执行方法的时候就会根据类对象指针去类里面找到这个方法并且去执行

对象.xxx=(ooo) 就是把 xxx赋值到对象里面   相当于在对象里写了  xxx=ooo

==>什么时候用面向对象?当某一些函数具有相同的参数时,可以用面向对象方式,将参数一次性的封装到对象,以后去对象中取值即可

self是什么鬼:

  self是一个python自动会给传值的形式参数

  哪个对象执行方法,self就是谁

obj1.fetch("select * from tableA")  -->self=obj1
obj1.fetch("select * from tableA")  --> self=obj2
class SQLHelper:
def fetch(self,sql):
print(sql)
def create(self,sql):
pass
def remove(self,nid):
pass
def modify(self,name):
pass
obj1 = SQLHelper()
obj1.hhost ="pt1.zuora.com"
obj1.uusername="leon"
obj1.pwd="" obj1.fetch("select * from tableA") obj2 = SQLHelper()
obj2.hhost ="pt1.zuora.com"
obj2.uusername="leon"
obj2.pwd="" obj2.fetch("select * from tableA")

__init__ (构造方法)

  类中有一个特殊的方法,在类()时候就会执行

class SQLHelper:
def __init__(self,a1,a2,a3):
print("自动执行")
self.hhost= a1
self.uusername = a2
self.pwd = a3
def fetch(self,sql):
print(sql)
def create(self,sql):
pass
def remove(self,nid):
pass
def modify(self,name):
pass
obj1 = SQLHelper("pt1.nb.com","leon","") obj1.fetch("select * from tableA") obj2 = SQLHelper("pt2.nb.com","gary","") obj2.fetch("select * from tableA")

(传参可取的方法)

继承

父类,基类

子类,派生类

class F1:   #父

  pass

class F2(F1):  #子

  pass

注意:

* 类优先执行自己的方法

继承就是把父类的东西拿过来,如果相同的话,自己的优先级最高

单继承:

每一次找的时候。涉及到self.xxx,回到起点找。子类里面没有就去父类里面找,父类里没有就去父父里找

class S1:

    def F1(self):
self.F2() def F2(self):
pass class S2(S1): def F3(self):
self.F1() def F2(self):
pass obj = S2()
obj.F3()

单继承

多继承:

括号左边优先级高 #class C3(C2,C1)

寻找顺序: 左到右,

    没有共同的父类,左纵深再右纵深(撞南墙再回来lol)

    有共同的父类,到临顶端之前缩回去,去右边找

Python一路走来 面向对象1的更多相关文章

  1. Python一路走来 DAY15 Javascript

    JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一 如何编写     ...

  2. Python一路走来 RabbitMQ

    一:介绍:(induction) Rabbitmq 是一个消息中间件.他的思想就是:接收和发送消息.你可以把它想成一个邮政局.当你把你的邮件发送到邮箱的,首先你需要确认的是:邮政员先生能把你的邮件发送 ...

  3. Python一路走来 - python基础 数据类型

    对于Python,一切事物都是对象,对象基于类创建 Python数据类型 python主要的数据类型主要包括以下几种类型: (1) 数字型 (2) 字符串 (3) 列表 (4) 元组 (5) 字典 ( ...

  4. Python 一路走来 Django

    Web 框架 (本质:socket) Python web框架           自己实现socket                - Tornado           基于wsgi       ...

  5. Python一路走来 线程 进程

    Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/usr/bin/env pytho ...

  6. Python一路走来 - 模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  7. Python 一路走来 DOM & Jquery

    DOM           查找:                直接查找                间接查找                —getElementById             ...

  8. Python 一路走来 HTML CSS Javascript

    前端三把利器 HTML          -标签 (成对写不容易忘记闭合)                     自闭和标签           标签里写个 xx=xx, 表示标签的属性       ...

  9. Python一路走来 Python算法

    冒泡排序: 1,2位置左右比较.大的排右边,继续比较2,3 ...... list=[5,7,2,8,12,1] #print(len(list)) for j in range(len(list)) ...

随机推荐

  1. python学习第九天 -- 列表生产式

    说说python特有的列表生成式.python的列表的生成式主要用法是什么? 用法就是可以使用简洁的代码生成出list集合. 直接用代码举了例子: 利用列表生成式生成列表[1x2,3x4,5x6,7x ...

  2. 编译cwm-recovery(含部分修改步骤)[转]

    1. 同步cm10.1的源码,具体操作请百度之-- 2. 打开终端,到源码目录下: cd Android/cm10.1                   //我的源码目录 3. 如果不想使用cm10 ...

  3. mysql安装图解 mysql图文安装教程(详细说明)-[转]

    很多朋友刚开始接触mysql数据库服务器,下面是网友整理的一篇mysql的安装教程,步骤明细也有详细的说明. MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.96是最新的稳定版 ...

  4. 红帽(Red Hat Linux)下SVN服务器的安装与配置

    转:http://www.cnblogs.com/xd502djj/archive/2011/01/21/1941404.html 第一章 安装 1. 采用源文件编译安装.源文件共两个,为:subve ...

  5. Nexus Root Toolkit教程—— 解锁与Root

    Nexus Root Toolkit是Nexus系列手机的专属root工具,本工具可为Nexus系列设备提供解锁.root和反解锁,还可以支持重要数据的备份和恢复.本教程以nexus 7二代和Nexu ...

  6. C#中使用SendMessage在进程间传递数据的实例

    原文:C#中使用SendMessage在进程间传递数据的实例 1 新建解决方案SendMessageExample 在解决方案下面新建三个项目:CopyDataStruct,Receiver和Send ...

  7. 为什么Application_BeginRequest会执行两次

       大家也看到了,很奇怪的是我们明明就请求了一个页面,页面中也没有其他的图片请求.为什么Application_BeginRequest会被执行了两次呢?!既然他请求,那我们看看他到底在请求什么就是 ...

  8. ZOJ3519-Beautiful People:最长上升子序列的变形

    Beautiful People Special JudgeTime Limit: 10000/5000MS (Java/Others)Memory Limit: 128000/64000KB (Ja ...

  9. hdu4405:概率dp

    题意: 总共有n+1个格子:0-n 初始情况下在 0号格子 每次通过掷骰子确定前进的格子数 此外 还有一些传送门可以瞬间从 u 点传送到 v 点(必须被传送) 求走到(或超过)n点总共需要掷多少次骰子 ...

  10. Git 2.7: 一个新的带来许多新特性和性能提升的主要版本

    在2.6版本发布两个月之后,Git 2.7发布.该版本带来了许多新特性以及性能的提升. 本文选取了Git 2.7带来的主要变化: git remote支持get-url子命令,可以显示指定远端的URL ...