• Python面向对象(2)类空间问题以及类之间的关系


    类空间问题

    添加对象属性

    对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加。

    class A:
        def __init__(self,name):
            self.name = name
        def func(self,sex):
            self.sex = sex
    
    # 类外部也可以:
    obj = A('barry')
    obj.age = 18
    print(obj.__dict__)  # {'name': 'Rabbit', 'age': 20}
    
    # 类内部也可以:
    obj = A('Rabbit') # __init__方法可以。
    obj.func('男')  # func 方法也可以。
    

    通过对象找到类的属性

    对象查找属性的顺序:先从对象空间找 ------> 类空间找 ------> 父类空间找 ------->.....
    类名查找属性的顺序:先从本类空间找 -------> 父类空间找-------->
    上面的顺序都是单向不可逆,类名不可能找到对象的属性

    类与类之间的关系

    1. 依赖关系
    2. 关联关系
    3. 组合关系
      组合:将一个类的对象封装到另一个类的对象的属性中,就叫组合。
    4. 聚合关系
      关联,聚合,组合关系
      写法是⼀样的. 但是, 从含义上是不⼀样的
      (1). 关联关系. 两种事物必须是互相关联的. 但是在某些特殊情况下是可以更改和更换的.
      (2). 聚合关系. 属于关联关系中的⼀种特例. 侧重点是xxx和xxx聚合成xxx. 各⾃有各⾃的声明周期. 比如电脑. 电脑⾥有CPU, 硬盘, 内存等等. 电脑挂了. CPU还是好的. 还是完整的个体
      (3).组合关系. 属于关联关系中的⼀种特例. 写法上差不多. 组合关系比聚合还要紧密. 比如⼈的⼤脑, ⼼脏, 各个器官. 这些器官组合成⼀个⼈. 这时. ⼈如果挂了. 其他的东⻄也跟着挂了
    5. 实现关系
    6. 继承关系(类的三大特性之一:继承。)
  • 相关阅读:
    HDU 2795
    HDU 1394
    HDU 1754
    HDU 1166
    SDOI 2006
    HDU 1423
    HDU 1561
    centos7.4 搭建zabbix-server 3.4.5
    vim 简单笔记
    jdk环境并配置环境变量
  • 原文地址:https://www.cnblogs.com/SkyRabbit/p/11317793.html
Copyright © 2020-2023  润新知