python基础-面向对象

我是张晨,一转眼,我在新课已经学习了很长一段时间。回顾这几个月的时间,我收获了很多知识。这里是我的一点学习笔记。
一、理解面向对象

​ 三大特性:封装、继承和多态

封装

​ 通过访问修饰符(如 private)来修饰成员变量和成员方法,将不需要对外提供的内容都隐藏起 来,提供公共方法对其访问。

​ 优点:

​ 1. 隐藏实现细节,提供公共的访问方式

​ 2.提高了代码的复用性

​ 3.提高安全性

继承

子类可以继承父类的东西

优点:

1.想要使用这些属性和方法的时候,可以直接去使用父类的,而不需要自己再重新去定义,更大程度的实现代码复用。

2.我们不需要写很多的冗余的代码,把共性的全部抽到父类,可以直接调用,如果需要个性化自定义子类的方法时,去重写父类的方法即可。

多态

多态是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作

优点:

便于接口的维护和拓展,可以将某一个子类切换成其他的子类,代码不需要做任何的改变,具有可替换性。

缺点:

只有是子类重写的父类的方法,父类才可以调用,但如果子类的方法不是重写父类的,而是子类独有的,那么这个时候多态就使用不了,这个是需要注意的点。

二、类和对象

什么是类?

具有同一特征的事物,是抽象的,不是真实存在的事物

特征即属性

行为是方法

面向对象中 变量叫做属性 函数叫做方法

一个类可以创建多个对象

示例:

定义一个洗衣机的长、宽、高,品牌

class WashingMachine:
    h = 850
    w = 460
    c = 595
    brand = '海尔'
    # self 自己 具体的一个对象
    def __init__(self):
        self.__color = 'red'  # 设置属性或者方法为私有方法
        # 在属性或者方法前加两根下划线
    def get_color(self):
        """获取颜色"""
        return self.__color
    def set_color(self, color):
        """设置颜色"""
        if color in ['red', 'blue', 'yellow']:
            self.__color = color
        else:
            print('违规的颜色')
    def start(self):
        print('启动洗衣机,开始洗衣服')
    def stop(self):
        print('关闭洗衣机')
# 类通过加括号来进行使用 生成一个具体的对象
haier1 = WashingMachine()
haier1.set_color('blue')  # 通过给予的修改方法,去修改对象里面的颜色
print(haier1.get_color())  # 通过get方法获取当前的颜色

三、获取、修改对象属性

获取对象属性:

 print(f'洗衣机高度:',haier1.h)  # 获取对象的属性

修改对象属性:

haier1.h = 600

通过方法调用对应的功能:

haier1.start() 

四、魔法方法

示例:

class A:
    # 当你有了这个魔法方法,就相对于有了这个功能
    def __len__(self):
        return 0
    def __init__(self):  # 初始化魔法方法  当函数被生成的时候自动调用
        # 作为类的参数传入
        pass
a = A()
print(a.__dir__())
print(len(a))
#运行结果:
# ['__module__', '__len__', '__init__', '__dict__', '__weakref__', '__doc__', '__new__', '__repr__', '__hash__', '__str__', '__getattribute__', '__setattr__', '__delattr__', '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__reduce_ex__', '__reduce__', '__subclasshook__', '__init_subclass__', '__format__', '__sizeof__', '__dir__', '__class__']
# 0

在这里插入图片描述
暂时先分享这么多吧,希望大家在学习过程当中都能有所收获,感谢新课,如果想获取更多资料或者联系加群,可以关注我们新课的微信公众号,后台自动回复获取代码笔记资料。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值