首页 > 代码库 > 面向对象基础

面向对象基础

1、面向对象不是所有情况都适用

2、面向对象编程

  a.定义类

    class 类名:

      def 方法1(self,bb):

        pass

  b.根据类创建对象

    使用对象去执行类中方法

 3、self,形式参数。python内部传递

 

class Oldboy(object):
    def fetch(self,backend):
        pass
    
    def add_record(self,backend,record):
        pass
    
obj1 = Oldboy()

obj2 = Oldboy()

技术分享

 

4、类+括号 --> 自动执行类中的__init__方法:创建了一个对象  

  在__init__方法中执行具体封装的操作

  __init__有个特殊的名字:构造方法

  这个过程叫初始化

  __del__ 解释器销毁对象的时候自动调用,特殊名称:析构方法

 

封装:

  使用场景:当同一类型的方法具有相同参数时,直接封装到对象即可。

  使用场景:把类当做模版,创建多个对象(对象内封装的数据可以不一样)

class Oldboy(object):
    def __init__(self,bk):
        ‘‘‘
        构造方法
        :param bk: 
        ‘‘‘
        self.backend = bk

    def fetch(self):
        print(self.backend)

    def add_record(self,record):
        print(self.backend)

obj1 = Oldboy(www1)

obj2 = Oldboy(www2)

obj1.fetch()

 

以上代码执行结果:

www1

 

 

 

继承:

5、派生类可以继承基类中所有的功能

6、派生类和基类同时存在,优先继承派生类。

7、python类可以同时继承多个类(C#/Java不可以)

  优先:自己>左边>右边

class Animals:

    def drink(self):
        print(‘animals drink‘)

    def cook(self):
        print(‘animals cook‘)

class fish:
    def cook(self):
        print(‘fish cook‘)
    def eat(self):
        print(‘fish eat‘)

class Dog(Animals,fish):
    def __init__(self,name):
        self.name = name

    def fuck(self):
        print(‘dog fuck‘)

    def drink(self):
        print(‘dog drink‘)


obj = Dog(‘zhou‘)
obj.fuck()
obj.drink()
obj.cook()
obj.eat()

以上代码运行结果:

dog fuck
dog drink
animals cook
fish eat

 

 

面向对象基础