python初级(302) 6 对象(三)

一、复习

1、什么是魔法方法?

2、什么是类的初始化函数?

 

二、什么是self

使用一个类可以创建多个对象实例,例如:

ball1 = Ball(“red”, “small”, “down”)

ball2 = Ball(“red”, “medium”, “up”)

调用其中一个实例的方法时,像这样:ball1.bounce()

方法必须知道是哪个实例调用它, self参数会告诉方法哪个对象调用它。这称为实例引用

调用方法时,ball1.bounce()的括号里没有参数,这是Python处理对象的一个魔法,调用一个类方法时,我们用哪一个实例调用,那个对象就会将实例引用自动传递给方法。

前面的调用也可以写成Ball.bounce(ball1)

小知识:所有类名一般采用大写字母开头的单词组合:Ball, HotDog

 

三、多态

多态:同一个方法,不同的行为

Triangle类和Square类都有一个名为get_area()的方法。所以分别有两个类的实例,如下:

class Triangle:
    """
    三角形类
    """
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def get_area(self):
        area = self.width * self.height / 2.0
        return area


class Square:
    """
    正方形类
    """
    def __init__(self, size):
        self.size = size

    def get_area(self):
        area = self.size * self.size
        return area

先创建它们的实例:

my_triangle = Triangle(4, 5) 

my_square = Square(7)

就可以使用get_area()分别计算它们的面积:

my_triangle.get_area() 

my_square.get_area()

每个形状都使用了方法名get_area(),  不过每个形状中这个方法做的工作不同,这就是一个多态的例子。

:相同的方法名,不同的工作(实现)。

 

四、作业:

1、将课堂完成的三角形类和正方形类写在一个文件shap.py中, 然后分别创建各自对象,完成面积的计算。

2、根据正方形类,生成10个不同的正方形对象,分别计算出边长为1到10的正方形面积

你可能感兴趣的:(python初级(302) 6 对象(三))