Python一路走来 面向对象1
面向对象: 类,对象
函数放在类里,叫方法
封装
#如何调用
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的更多相关文章
- Python一路走来 DAY15 Javascript
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一 如何编写 ...
- Python一路走来 RabbitMQ
一:介绍:(induction) Rabbitmq 是一个消息中间件.他的思想就是:接收和发送消息.你可以把它想成一个邮政局.当你把你的邮件发送到邮箱的,首先你需要确认的是:邮政员先生能把你的邮件发送 ...
- Python一路走来 - python基础 数据类型
对于Python,一切事物都是对象,对象基于类创建 Python数据类型 python主要的数据类型主要包括以下几种类型: (1) 数字型 (2) 字符串 (3) 列表 (4) 元组 (5) 字典 ( ...
- Python 一路走来 Django
Web 框架 (本质:socket) Python web框架 自己实现socket - Tornado 基于wsgi ...
- Python一路走来 线程 进程
Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/usr/bin/env pytho ...
- Python一路走来 - 模块
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- Python 一路走来 DOM & Jquery
DOM 查找: 直接查找 间接查找 —getElementById ...
- Python 一路走来 HTML CSS Javascript
前端三把利器 HTML -标签 (成对写不容易忘记闭合) 自闭和标签 标签里写个 xx=xx, 表示标签的属性 ...
- Python一路走来 Python算法
冒泡排序: 1,2位置左右比较.大的排右边,继续比较2,3 ...... list=[5,7,2,8,12,1] #print(len(list)) for j in range(len(list)) ...
随机推荐
- Python读取Yaml文件
近期看到好多使用Yaml文件做为配置文件或者数据文件的工程,随即也研究了下,发现Yaml有几个优点:可读性好.和脚本语言的交互性好(确实非常好).使用实现语言的数据类型.有一个一致的数据模型.易于实现 ...
- Linux下的管道命令有这些:
Linux下的管道命令有这些: 选取命令:cat grep 排序命令:sort wc uniq 双向重定向:tee 字符转换命令: tr, col, join, paste, expand 切割命令: ...
- CPU卡中T=0通讯协议的分析与实现
IC卡的应用越来越广泛,从存储卡到逻辑加密卡,目前CPU卡已经逐渐在应用中占据主导地位.CPU卡根据通讯协议可分为两种:接触式和非接触式.接触式CPU卡主要采用两种通讯协议:T=0和T=1通讯协议.T ...
- 【转】将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
原文网址:http://blog.csdn.net/bokee/article/details/6633193 工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话.. ...
- 【转】Ubuntu 10.04 LTS 的窗口控制按钮从左上角调整到右上角
原文网址:http://www.linuxidc.com/Linux/2010-05/26111.htm 升级到Ubuntu 10.04后最大的问题,是最小最大和关闭按钮,放到了左边.这叫Ubuntu ...
- usaco5.5-Hidden Passwords
最小表示法,感觉可以做成个模板,第一次RE是因为字符串长度变2倍了而我把数组开小了 Executing... Test 1: TEST OK [0.008 secs, 3760 KB] Tes ...
- <php>统计目录数和文件数
$dirn = 0; //目录数 $filen = 0; //文件数 //用来统计一个目录下的文件和目录的个数 function getdirnum($file) { global $dirn; gl ...
- [转载]Linux的时间与时钟中断处理
本文主要介绍在Linux下的时间实现以及系统如何进行时钟中断处理. 一. Linux的硬件时间 PC机中的时间有三种硬件时钟实现,这三种都是基于晶振产生的方波信号输入.这三种时钟为: 实时时钟RTC ...
- Java中的XML操作
1.DOM方式解析(读取)XML文件 待解析(读取)的XML文件,直接放在项目根目录下即可 <?xml version="1.0" encoding="UTF-8& ...
- 【足迹C++primer】46、动态存储类
动态存储类 StrVec Class Design StrVec Class Definition class StrVec { public: //构造函数 StrVec():elements(nu ...