Python Basic day10

2019-02-23  本文已影响0人  AIturbo

1,面向对象语言三大特性:

封装 继承 多态
(主要考虑继承!其它两个比较弱化)

2,多态

一种事物多种形态 (前提:子类是父类的另外一个形态)

3,公有属性继承问题:

父类的公有属性也会继承给子类对象,但是要注意__init__重写的重写问题

    class Dog(Animal):

        def __init__(self):   # __init__是一个初始化方法,重写了父类的__init__导致父类的age属性访问不到
            # Animal.__init__(self)
            # super().__init__()
            super(Dog, self).__init__()   # 如果想要把父类的属性也继承过来(解决重写的问题),需要调用到到父类的__init__方法,并且最好写在最开始到的位置
            self.name = "小狗"
            self.age = 0

4,了解类属性和实例属性的概念

类属性 指的是类对象的属性
类属性的定义:在类里面,在方法之外 定义的,不用带self
特点:类属性在各个对象之间共享

实例属性 指的是实例对象的属性
特点:在各个对象之间互相独立,互不干扰

5,掌握类属性和实例属性的访问和修改方法

类名.属性名 
对象名.属性名

类属性的访问和修改:
    1、类名.类属性名(最最常用)   Dog.num
    2、对象名.类属性名(不推荐使用)
    3、对象名.__class__.类属性名(了解)
    4、在类方法中, cls.类属性名 

    实例属性
    def __init__(self):
        self.age = 10   # 实例属性  特点:在各个实例对象之间的互不干扰的,互相独立的

6,掌握类方法的使用

@classmethod
Def fn(cls):
xxx
类名.方法名()    Dog.fn()

类方法格式:
    @classmethod  # 装饰器、修饰器
    def 类方法名(cls):   # 类方法, 用来处理类属性
        pass

    调用的格式:
    1、类名.类方法名()
    2、对象名.__class__.方法名()
3、在类方法中  cls.类方法名()

7,掌握静态方法的使用

@staticmethod
Def fn():
xxx
类名.方法名()    Dog.fn()

8,实例方法,类方法,静态方法

三种方法,实例方法最常用!

9,了解单例模式的定义方式

上一篇 下一篇

猜你喜欢

热点阅读