• 面向对象【day07】:知识点回顾(十一)


    本节内容

    1、self关键字

    2、封装

    3、继承

    4、静态方法

    一、self关键字

    作用:调用当前方法的对象

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Foo:
         
        #静态字段或者公有属性
        country = "中国"
     
        def __init__(self,name,count):
            self.name = name
            self.count = count
     
        def bar(self):
            pass
     
    obj1 = Foo("江苏"100000)
    obj1.bar

    注意:country = "中国" 属于公有字段,它的作用是:每个对象中保存相同的东西时,可以使用静态字段

     

    二、封装

    • 类中封装了 :字段、方法
    • 对象中封装了:普通字段的值
    • 不仅可以封装字段,还可以封装对象
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    class F1:
        def __init__(self,n):
            self.N = n
            print("F1")
         
    class F2:
        def __init__(self,arg1):
            self.a = arg1
            print("F2")
     
    class F3:
         
       def __init__(self,arg2):
            self.b = arg2
            print("F3")
     
    o1 = F1("alex")
    o2 = F2(o1)
    o3 =F3(o2)
     
    ######输出alex####
    # o3 =F3(o2)
    o3 ====> o2
     
    # o2 = F2(o1)
    o3.b.a
     
    # o1 = F1("alex")
    o1.b.a.N

    三、继承

    说明:子类继承父类,对象调用方法时,先从自己的类中去找,找不到,就会去找父类中的方法。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    class F1:
        def __init__(self):
            print('F1')
     
        def a1(self):
            print("F1a1")
     
        def a2(self):
            print("F1a2")
     
    class F2(F1):
        def __init__(self):
            print("F1")
     
        def a1(self):
            print("F2a1")
     
        def a2(self):
            self.a2()
            print("F2a2")
     
    class F3(F2):
        def __init__(self):
            print("F3")
     
        def a2(self):
            print("F3a2")
     
    obj = F3()
    obj.a1()
     
    #输出
    F3a2
    F2a1

    上面代码访问的顺序如下:

    1.  先去到F3中找a1方法,没有找到
    2. 到F2父类去找,找到了a1方法,去执行a1方法
    3. 执行过程中需要调用F3中的a2方法

    四、静态方法

    4.1 类的组成

    • 字段:1.普通字段(保存在对象中),2静态字段(保存在类中)
    • 方法:普通方法(保存在类中,用对象去调用)
    1
    2
    3
    4
    5
    6
    7
    class F1:
        age = 18  #静态字段
        def __init__(self,name):
            self.name = name  #普通字段
     
        def a1(self):   #普通方法
            print('F1a1')

    4.2 静态方法

    特点:

    1. 保存在类中
    2. 调用者无需创建对象
    3. 可以有任意个参数
    1
    2
    3
    4
    5
    6
    7
    8
    class F1:
         
        @staticmethod   #声明是静态方法
        def a1(n1,n2):   #无需传入对象,但是可以声明多个值
            print('xiaogao')
     
     
    F1.a1(1,2)   #类名.方法名 方式调用

    作用:当对象不需要传入参数时,去创建对象有些浪费,占着资源,所以还不如直接用类名直接去调用,这个类似于函数。

  • 相关阅读:
    lastz
    Ctrl + c 强制退出
    jobs|ps|杀死nohup
    查询节点qhost
    great vision|be quite honest with you
    golang viper ReadRemoteConfig error
    使用cat和EOF生成 shell 脚本时会自动解析变量的解决办法
    centos install ruby
    golang 性能提升
    查询车系特定口碑信息
  • 原文地址:https://www.cnblogs.com/luoahong/p/9895440.html
Copyright © 2020-2023  润新知