封装设计python

数据角度:将一些基本数据类型复合成一个自定义类
行为角度:向类外提供必要的功能,隐藏实现的细节
将一个大的需求分解为许多类,变化的地方独立封装,避免影响其他类
类中各个方法都在完成一项任务(单一职责的类)
类与类的关联性与依赖度要低

class Person:
    """
    老王去北京
    """
    def __init__(self,name):
        self.name = name
    @property
    def name(self):
        return self.__name
    @name.setter
    def name(self,value):
        self.__name = value
    def go_to(self,str_postion,type):
        print(self.name,"去",str_postion)
        type.run(str_postion)
class Car:
    def run(self,str_postion):
        print("行驶到:",str_postion)
lw = Person("老王")
car = Car()
lw.go_to("北京",car)

# -*- coding: UTF-8 -*-
class Person:
    """
    小米到招商银行存钱
    """
    def __init__(self,name):
        self.name = name
    @property
    def name(self):
        return self.__name
    @name.setter
    def name(self,value):
        self.__name = value
    def save(self,postion):
        print(self.name+"去"+postion.name+"存钱")
        postion.save_money()

class Bank:
    def __init__(self,name):
        self.name = name



        @property
        def name(self):
            return self.__name

        @name.setter
        def name(self, value):
            self.__name = value
    def save_money(self):
        print("存钱了")
xiaomi = Person("小米")
bank = Bank("招商银行")
xiaomi.save(bank)

class Person:
   
    def __init__(self,name,money):
        self.name = name
        self.money = money
    @property
    def name(self):
        return self.__name
    @name.setter
    def name(self,value):
        self.__name = value

    @property
    def money(self):
        return self.__money

    @money.setter
    def money(self, value):
        self.__money = value
    def teach(self,student,skill):
        print(self.__name+"教"+student+skill)
    def go_to_work(self,money):
        self.__money += money
        print(self.name+"去上班赚了"+str(money))


zhang = Person("张无忌",1000)
zhao = Person("赵敏",1000)
zhang.teach(zhao.name,"九阳神功")
zhao.teach(zhang.name,"化妆")
zhang.go_to_work(6000)
zhao.go_to_work(6000)
class Enemy:
    def __init__(self,name,hp,attack):
        self.name = name
        self.hp = hp
        self.attack=attack




    def __qut_equipment(self):
        print("掉装备")
        print("加分")
    def attack_methods(self,other):
        print("敌人攻击玩家")


        other.injured(self)
    def injured(self,other):
        print('敌人受伤了')
        self.hp-=other.attack
        if self.hp <=0:
            self.__death()

    def __death(self):
        print("敌人死亡")
        self.__qut_equipment()



class Player:
    def __init__(self,name,hp,attack):
        self.name = name
        self.hp = hp
        self.attack=attack

    def attack_methods(self, other):
        print("玩家攻击敌人")

        other.injured(self)

    def injured(self, other):
        print('玩家受伤了')
        self.hp -= other.attack
        if self.hp <= 0:
            self.__death()

    def __death(self):
        print("玩家死亡")
player = Player("张无忌",100,100)
enemy = Enemy("怪物",200,10)
player.attack_methods(enemy)
enemy.attack_methods(player)
player.attack_methods(enemy)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值