找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 66|回复: 1

[代码与实例] python 封装设计 练习

1

主题

4

帖子

4

积分

贫民

积分
4
  1. """
  2.     请用面向对象实现,描述以下场景:
  3.         张无忌 教 赵敏 九阳神功
  4.         赵敏 教 张无忌 化妆
  5.         张无忌 上班 挣了 10000
  6.         赵敏 上班 挣了 6000
  7.         思考: 变化点是数据的不同还是行为的不同
  8. """


  9. class Person:

  10.     def __init__(self, name, skills, money):
  11.         self.name = name
  12.         self.skills = skills
  13.         self.money = money
  14.         self.print_info('初始化:')

  15.     @property
  16.     def name(self):
  17.         return self.__name

  18.     @name.setter
  19.     def name(self, value):
  20.         self.__name = value

  21.     @property
  22.     def skills(self):
  23.         return self.__skills

  24.     @skills.setter
  25.     def skills(self, value):
  26.         self.__skills = value

  27.     @property
  28.     def money(self):
  29.         return self.__money

  30.     @money.setter
  31.     def money(self, value):
  32.         self.__money = value

  33.     # 教技能给某人
  34.     def teaching_skill_to_person(self, skill, person):
  35.         if skill in self.__skills:
  36.             print('[%s]传授了%s给[%s]' % (self.__name, skill, person.name))
  37.             person.skills.append(skill)
  38.         else:
  39.             print('%s你自己都不会怎么教别人')

  40.     # 打工
  41.     def work(self, money):
  42.         print('[%s]上班赚了[%d]' % (self.__name, money))
  43.         self.__money += money

  44.     # 打印信息
  45.     def print_info(self, initialize=''):
  46.         print('%s[%s]技能点:%s,钱:[%d]' % (initialize, self.__name, self.__skills, self.__money))


  47. print('预览初始 2人的 信息')
  48. person_wuji = Person('张无忌', ['九阳神功', '赚钱'], 1500)
  49. person_zhaoming = Person('赵敏', ['化妆', '赚钱'], 1500)
  50. print()
  51. # 张无忌 教 赵敏九阳神功
  52. person_wuji.teaching_skill_to_person('九阳神功', person_zhaoming)
  53. # 赵敏 教 张无忌 化妆
  54. person_zhaoming.teaching_skill_to_person('化妆', person_wuji)
  55. #       张无忌 上班 挣了 10000
  56. person_wuji.work(10000)
  57. #       赵敏 上班 挣了 6000
  58. person_zhaoming.work(6000)
  59. # 预览
  60. print()
  61. print('预览最终 2人的 信息')
  62. person_wuji.print_info()
  63. person_zhaoming.print_info()
复制代码


回复

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
周滔[Tom]  楼主| 发表于 3 天前 | 显示全部楼层
控制台信息

C:\ProgramData\Anaconda3\python.exe E:/svn/repository/tom/Python_study/day004/封装设计实现练习2.py
预览初始 2人的 信息
初始化:[张无忌]技能点:['九阳神功', '赚钱'],钱:[1500]
初始化:[赵敏]技能点:['化妆', '赚钱'],钱:[1500]

[张无忌]传授了九阳神功给[赵敏]
[赵敏]传授了化妆给[张无忌]
[张无忌]上班赚了[10000]
[赵敏]上班赚了[6000]

预览最终 2人的 信息
[张无忌]技能点:['九阳神功', '赚钱', '化妆'],钱:[11500]
[赵敏]技能点:['化妆', '赚钱', '九阳神功'],钱:[7500]

Process finished with exit code 0
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表