类的封装和多态

类的封装

class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.__life_val = 100  # 定义私有属性

    def injured(self):
        self.__life_val -= 10
        print("%s受伤了,还剩下%d血量" % (self.name, self.__life_val))
        self.__money()

    def __money(self):  # 定义私有方法
        print("%s请求查询一下自己的钱包还有多少钱!!!" % self.name)


p = Person("阿三", 18)
# p.injured()
# p.__money() # 无法访问
# print(p.__life_val)  # 外部无法访问私有属性
# 如果要去访问私有属性
print(p._Person__life_val)
p._Person__money()
p.__xxx = 555
print(p.__xxx)  # 顺便说明一下实例化之后自定义的私有属性不是私有的,是可以被直接修改的

在这里插入图片描述

类的多态

一个接口通过不同的对象去调用,能显示不同的效果,这就是多态性

class object:
    def eat(self):
        raise NotImplementedError("子类没有实现父类要求一定要实现的接口")


class Dog(object):
    def eat(self):
        print("狗在吃东西!!!")


class Person(object):
    def eat(self):
        print("人在吃东西!!!")


# 通过统一的函数去调用
def get_food(*args, **kwargs):
    for i in args:
        i.eat()  # 不管你是什么东西,都给我调用eat()方法


d = Dog()
p = Person()
# d.eat()
# p.eat()
get_food(d, p)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

发酵的西瓜

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值