22 python 初学(类,面向对象)

  1. python: 函数式 + 面向对象
  2. 函数式可以做所有的事,是否合适?

 

 

面向对象:

一、定义:

函数: def + 函数名(参数)

 

面向对象: class  -》 名字叫 Bar

           def  -> 名字叫 foo 的方法。第一个参数是 self

二、执行:

函数:函数名(参数)

面向对象: obj = Bar()# 创建中间人,对象

           obj.foo()

 

# self:代指调用方法的对象(中间人)

      中间人里面可以存值:obj.name = ‘lily’

      self 永远指调用此方法的调用者

 

封装:将属性封装到对象里

 

# 构造方法:

  特殊作用:

      obj = 类名():完成两件事(1. 创建对象 2. 通过对象执行类中的一个特殊方法 __init__

 

 

小结1 创建类: class 类名

         创建方法: 构造方法: __init__  创建对象时自动调用此构建方法

                    普通方法:先创建对象,然后用对象调用普通方法

         面向对象三大特性之一:封装

 class Bar():
    def __init__(self, name, age):
        '''
        构造方法,构造方法的特性,类名()自动执行构造方法
        '''
        self.name = name
        self.age = age
        print('123')

obj = Bar('lily', 18)

         适用场景:如果多个函数中有一些相同参数时,转换成面向对象

 

 

面向对象三大特性之二:继承

 

重写:防止执行父类中的方法

主动调用父类方法有两种方式: super(son, self).football() father.football(self)

                             推荐使用 super 方法

python中支持多继承: a. 左侧优先  b. 一条道走到黑  c. 同一个根时,根最后执行

 

面向对象三大特性之三:多态(python原生多态)

 

 

面向对象中高级:

成员:

字段:普通字段(保存在对象中)、 静态字段

      普通字段属于对象,保存在对象中,只能通过对象访问;

静态字段属于类,内存中只保存一份,执行时可以通过对象访问,也可以通过类访问

方法:- 普通方法:保存在类中,由对象来调用   self ->调用对象

      - 静态方法:@staticmethodself 不是必须的;保存在类中,通过类直接调用

      - 类方法: @classmethod ;保存在类中,由类直接调用; cls -> 当前类

 

 

##################### 应用场景:

      如果对象中需要保存一些值,执行某功能时,需要使用对象中的值  -》 普通方法

      不需要任何对象中的值 -》 用静态方法

 

 

        属性:定义像方法,调用像字段

                

猜你喜欢

转载自www.cnblogs.com/mlllily/p/10296866.html