类的空间问题

一 类的空间问题

1.1何处可以添加对象属性

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': 'barry', 'age': 18}

#类里面也可以
obj = A('barry')
obj.func('男')  #   函数传了参数进去呀
print(obj.__dict__)
# {'name': 'barry', 'sex': '男'}

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

1.2 何处添加类的静态属性

class A:
    def __init__(self,name):
        self.name = name
    def func(self,sex):
        self.sex = sex
    def func1(self):
        A.bbb = 'ccc'


# 类的外部可以添加
A.aaa = 'taibai'
print(A.__dict__)

# 类的内部也可以添加
# A.func1(111)
# print(A.__dict__)

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

1.3 对象如何找到类的属性

通过之前的学习,实例化一个对象,可以通过点的方式找到类中的属性

对象查找属性的顺序:

先从对象空间找——>类空间找——>父类空间找———>

**类名查找属性的顺序 : **

先从本类空间找,类名不可能找到对象的属性

二 : 类与类之间的关系

在大千世界中,类与类存在以下关系:

  1. 依赖关系
  2. 关联关系
  3. 组合关系 : 给一个对象封装一个属性,属性值是另一个类的对象
  4. 聚合关系
  5. 实现关系
  6. 继承关系(类的三大特性之一 : 继承)

2.1 依赖关系:将一个类的的类名或者对象传入另一个类的方法中

首先,写出两个类,一个是大象类,一个是冰箱类

原文地址:https://www.cnblogs.com/hualibokeyuan/p/11330866.html