跟新恢复(回家了一趟)

绑定

#认识绑定方法
def fuc():pass
print(fuc)

class Foo:
    def fuc(self):
        print('func')
f1 = Foo()
print(f1.fuc)
print(Foo.fuc)

我们可以通过他们的内存地址可以发现,对象的绑定在类上的。就是说对象的方法是依托于类的,就相当于对象调用方法时,是把值传入类中的方法然后在得到返回。当调用时这个对象就与类绑定在一起了。

组合

指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合

实列:我们可以用一个计算圆环的面积来了解组合这个概念。

from math import pi

class Circle:
    '''
    定义了一个圆形类;
    提供计算面积(area)和周长(perimeter)的方法
    '''
    def __init__(self,radius):
        self.radius = radius

    def area(self):
         return pi * self.radius * self.radius

    def perimeter(self):
        return 2 * pi *self.radius


circle =  Circle(10) #实例化一个圆
area1 = circle.area() #计算圆面积
per1 = circle.perimeter() #计算圆周长
print(area1,per1) #打印圆面积和周长

class Ring:
    '''
    定义了一个圆环类
    提供圆环的面积和周长的方法
    '''
    def __init__(self,radius_outside,radius_inside):
        self.outsid_circle = Circle(radius_outside)
        self.inside_circle = Circle(radius_inside)

    def area(self):
        return self.outsid_circle.area() - self.inside_circle.area()

    def perimeter(self):
        return  self.outsid_circle.perimeter() + self.inside_circle.perimeter()


ring = Ring(10,5) #实例化一个环形
print(ring.perimeter()) #计算环形的周长
print(ring.area()) #计算环形的面积

通俗来说,就是多个类之间相互作用时。一个对象的属性值使另外一个类的对象。

原文地址:https://www.cnblogs.com/zly9527/p/11569213.html