类,对象的学习

Python中所有的东西都能是对象,数据加函数就是对象,对象的集合就是类,比如下面的一段,学生就是类,可以通过一系列的函数来定义一个学生,类的创建会自动分配一个储存空间,这时候print会返回目标地址

class Student:

    def study(self, course_name):
        print(f'学生正在学习{course_name}.')

    def play(self):
        print(f'学生正在玩游戏.')

 但是这个类里面只有方法,study和play,没有属性,我们通过_init_格式化class的空间并赋予初值

class Student:
    """学生"""

    def __init__(self, name, age):
        """初始化方法"""
        self.name = name
        self.age = age

    def study(self, course_name):
        """学习"""
        print(f'{self.name}正在学习{course_name}.')

    def play(self):
        """玩耍"""
        print(f'{self.name}正在玩游戏.')
    
    def __repr__(self):
        return f'{self.name}: {self.age}'

_repr_称为魔术方法,print时候会显示内容

类的调用有两种,Student.study(stu1,"Python")

                                stu1.study(''Python)

封装 继承 多态

封装

隐藏一切可以隐藏的实现细节,只向外界暴露简单的调用接口

我们在类中定义的对象方法其实就是一种封装

这种封装可以让我们在创建对象之后,只需要给对象发送一个消息就可以执行方法中的代码,也就是说我们在只知道方法的名字和参数(方法的外部视图),不知道方法内部实现细节(方法的内部视图)的情况下就完成了对方法的使用。

封装其实就是def 函数,然后调用,这样就看不到内部细节 

面向对象编程的三步走

第一步定义类,第二步创建对象,第三步给对象发消息。

类是抽象的,对象是具体的,有了类就能创建对象,有了对象就可以接收消息,这就是面向对象编程的基础。

继承 

继承就是子类调用父类,可以看成函数调用函数,就是嵌套继承

多态

子类继承父类的方法后,还可以对方法进行重写(重新实现该方法),不同的子类可以对父类的同一个方法给出不同的实现版本,这样的方法在程序运行时就会表现出多态行为(调用相同的方法,做了不同的事情)。

简单地说就是,同种调用有不同的实现方法

重写就是子类对父类已有的方法重新做出实现。相信大家已经注意到了,三个子类中的get_salary各不相同,所以这个方法在程序运行时会产生多态行为,多态简单的说就是调用相同的方法,不同的子类对象做不同的事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值