02面向对象之:类空间问题及类之间的关系

Posted yanranran

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02面向对象之:类空间问题及类之间的关系相关的知识,希望对你有一定的参考价值。

一.类的空间问题

1.何处可以添加对象属性

class A:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def func(self,sex):
        self.sex = sex
# 类的外面可以
obj =A(alex,12)
obj.heght=122
print(obj.__dict__)
{‘name‘: ‘alex‘, ‘age‘: 12, ‘heght‘: 122}
# 内部也可以 obj.func(
nv) print(obj.__dict__)
{‘name‘: ‘alex‘, ‘age‘: 12, ‘heght‘: 122, ‘sex‘: ‘nv‘}

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

 

1.2何处可以添加类的静态属性

class A:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def func(self,sex):
        self.sex = sex
        print(666)
    def func1(self):
        A.country=zhonguo

# 类的外部可以添加 A.aaa = 666 print(A.__dict__)
# 类的内部也可以添加 A.func1(
12321) print(A.__dict__)

总结:类的属性不仅可以在类内部添加,还可以在类的外部添加

 

1.3 对象如何找到类的属性

之前咱们都学习过,实例化一个对象,可以通过点的方式找到类中的属性,那么他为什么可以找到类中的属性呢?

通过图解说明:

技术分享图片

对象查找属性的顺序:先从对象空间找  ------> 类空间找 ------> 父类空间找 ------->.....

类名查找属性的顺序:先从本类空间找 -------> 父类空间找--------> ........

上面的顺序都是单向不可逆,类名不可能找到对象的属性。

 

 二.类与类之间的关系

 

大千世界, 万物之间皆有规则和规律. 我们的类和对象是对?千世界中的所有事物进?归类. 那事物之间存在着相对应的关系. 类与类之间也同样如此. 在?向对象的世界中. 类与类中存在以下关系:

1. 依赖关系
2. 关联关系
3. 组合关系
4. 聚合关系
5. 实现关系
6. 继承关系(类的三大特性之一:继承。)

 

2.1 依赖关系

 

以上是关于02面向对象之:类空间问题及类之间的关系的主要内容,如果未能解决你的问题,请参考以下文章

17.Python面向对象之:类空间问题以及类之间的关系

python 面向对象专题:类的空间问题类与对象之间的关系类与类之间的关系

python 面向对象专题:类的空间问题类与对象之间的关系类与类之间的关系

UML中的类图及类图之间的关系

2Python全栈之路系列之面向对象进阶及类成员

UnityUnity C#开发设计面向对象原则及类与类的关系