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="123"

obj1.fetch("select * from tableA")

obj2 = SQLHelper()
obj2.hhost ="pt1.zuora.com"
obj2.uusername="leon"
obj2.pwd="123"

obj2.fetch("select * from tableA")
View Code

 

__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","123")


obj1.fetch("select * from tableA")

obj2 = SQLHelper("pt2.nb.com","gary","456")

obj2.fetch("select * from tableA")
View Code(传参可取的方法)

 

 

继承

父类,基类

子类,派生类

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()
View Code 单继承

多继承:

 

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

寻找顺序: 左到右,

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

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

 

posted @ 2016-06-21 20:14  小新gg  阅读(111)  评论(0编辑  收藏  举报