|
- """
- 请用面向对象实现,描述以下场景:
- 张无忌 教 赵敏 九阳神功
- 赵敏 教 张无忌 化妆
- 张无忌 上班 挣了 10000
- 赵敏 上班 挣了 6000
- 思考: 变化点是数据的不同还是行为的不同
- """
- class Person:
- def __init__(self, name, skills, money):
- self.name = name
- self.skills = skills
- self.money = money
- self.print_info('初始化:')
- @property
- def name(self):
- return self.__name
- @name.setter
- def name(self, value):
- self.__name = value
- @property
- def skills(self):
- return self.__skills
- @skills.setter
- def skills(self, value):
- self.__skills = value
- @property
- def money(self):
- return self.__money
- @money.setter
- def money(self, value):
- self.__money = value
- # 教技能给某人
- def teaching_skill_to_person(self, skill, person):
- if skill in self.__skills:
- print('[%s]传授了%s给[%s]' % (self.__name, skill, person.name))
- person.skills.append(skill)
- else:
- print('%s你自己都不会怎么教别人')
- # 打工
- def work(self, money):
- print('[%s]上班赚了[%d]' % (self.__name, money))
- self.__money += money
- # 打印信息
- def print_info(self, initialize=''):
- print('%s[%s]技能点:%s,钱:[%d]' % (initialize, self.__name, self.__skills, self.__money))
- print('预览初始 2人的 信息')
- person_wuji = Person('张无忌', ['九阳神功', '赚钱'], 1500)
- person_zhaoming = Person('赵敏', ['化妆', '赚钱'], 1500)
- print()
- # 张无忌 教 赵敏九阳神功
- person_wuji.teaching_skill_to_person('九阳神功', person_zhaoming)
- # 赵敏 教 张无忌 化妆
- person_zhaoming.teaching_skill_to_person('化妆', person_wuji)
- # 张无忌 上班 挣了 10000
- person_wuji.work(10000)
- # 赵敏 上班 挣了 6000
- person_zhaoming.work(6000)
- # 预览
- print()
- print('预览最终 2人的 信息')
- person_wuji.print_info()
- person_zhaoming.print_info()
复制代码
|
|