Python3之面向对象小结

日期:2020年2月12日
作者:Commas
注释:学习就是为了忘记,面向对象的三大特征,类的属性与方法,对象的属性与方法……
如果您想了解更多有关Python的知识,那么请点《我的Python浅谈系列目录》



一、面向对象的三大特征

序号特征说明
1封装将代码放到一个容器(类)里面,使其变量与外界隔离,隐藏其属性和实现细节,仅对外提供公共访问的方式
2继承为了提高代码利用率,减少重复代码的书写,子类继承父类的所有属性与方法,实际就是保存了一个父类的引用,访问属性和调用方法的原则是"就近原则"
3多态从字面量理解就是一个事物的多种形态,如子类继承父类后重写的方法,虽和父类方法名一样,但是已经不再是父类那种“形态”

二、类其实也是一个对象

类其实也是一个对象,Python在执行代码的时候,读到一个类的时候,会将这个类加载到内存中,不知你是否注意到了,我们可以通过点运算符调用类中的属性和方法,这部也恰恰说明了类实则是一个对象,我们把这个特殊的对象称为类对象,而我们经常说的对象,通常情况下是指通过类对象所实例出来的一个对象,而被实例出来的对象,则是所谓的实例对象,也叫做实例。类对象与实例对象存储内容如下表所示:

属性或方法类对象实例对象
类属性存储仅储存引用
类方法存储仅存储引用
实例属性不存储存储
实例方法存储仅存储引用

三、类对象与实例对象的例子

class Chinese:
    """中国人的类"""

    language = "Mandarin"

    @classmethod
    def show_native_tongue(cls):
        """【类方法】通过@classmethod创建"""
        print("{}是我的母语".format(cls.language))

    @staticmethod
    def show_me():
        """
        【静态方法】通过@staticmethod创建
        1、既不需要访问实例属性或调用实例属性
        2、也不需要访问类属性或调用类方法
        """
        print("我是中国人")

    def __init__(self, name, sex="male"):
        self.name = name
        self.sex = sex

    def say_hello(self):
        """【实例方法】中国式打招呼"""
        print("{}:吃了饭没呀?".format(self.name))


class Cantonese(Chinese):
    """广东人类,继承中国人类"""

    def say_hello(self):
        """重写方法,广东人打招呼"""
        print("{}:食咗饭未呀?".format(self.name))
        # 可能广东话听不懂,所以父类的普通话再问候一遍
        super().say_hello()


xu = Cantonese("老许")
# 属性
print(xu.language)
print(xu.name)
print(xu.sex)
# 方法调用
xu.say_hello()

Chinese.show_native_tongue()
Chinese.show_me()
xu.show_native_tongue()
xu.show_me()
控制台输出:
Mandarin
老许
male
老许:食咗饭未呀?
老许:吃了饭没呀?
Mandarin是我的母语
我是中国人
Mandarin是我的母语
我是中国人

版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/104290711

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Commas.KM

码路共同进步,感恩一路有您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值