首页 > 技术文章 > python_面向对象

xumb 2019-11-30 18:47 原文

一、面向对象

1、面向对象简介:

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • 数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • 局部变量:定义在方法中的变量,只作用于当前实例的类。
  • 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
  • 实例化:创建一个类的实例,类的具体对象。
  • 方法:类中定义的函数。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
  • 静态方法:只是写在类里面的一个方法,不能使用类变量,调用不了其他类的方法
  • 实例方法:必须经过实例化才能使用的函数
  • 类方法:不用实例化,通过类名就可以直接调用的方法,用实例也可以调用
  • 属性方法:看起来像变量的一个函数
  • 构造函数:类在实例化的时候自动调用的方法
  • 析构函数:实例被销毁的时候自动调用的方法
  • 私有方法:是能在类里面调用,出了类就不行了
  • 私有变量:只在类里面使用

2、创建类

class My:

  def func(self)  #类体

    self.name = 'xmb'

    pass

  def func2(self):

    self.func()

m = My()

m.func()

m.name

3、面向过程

def buyCar():
    print('买车')
def baoxian():
    print('保险')
def jiaoshui():
    print('交税')
def shangpai():
    print('上牌')

4、面向对象

class BuyCar:
    def buyCar():
        print('买车')
    def baoxian():
        print('保险')
    def jiaoshui():
        print('交税')
    def shangpai():
        print('上牌')
xm = BuyCar() #类实例化
xm.baoxian()

5、构造函数

1 class Person:
2     def __init__(self):
3         self.__base_price = 8000   #私有变量
4         print("构造函数")

6、析构函数

1 class Person:
2      def __del__(self):
3         print("析构函数")

7、类变量

class Person:  #经典类
    #属性就是变量
    #功能就是函数
    country = 'China'   #类变量
    base_price = 8000
    discount = 0.1

8、静态方法

class Person:  #经典类
        @staticmethod
    def help():   #静态方法
        print("静态方法")

9、类方法

1 class Preson:
2     @classmethod   #类方法
3     def sayCountry(cls):
4         #代表本身的这个类
5         print(cls.country)

 

推荐阅读