面向对象作业

程序员,拥有,姓名,性别,年龄,工资,和编程技能

项目经理必须又程序员晋升而来,拥有奖金,和管理技能 

请使用面向对象来表达这种关系 



选做需求,让程序员和项目经理都能调用save将对象序列化到文件

"""
import json






class Programmer:             #程序员
    def __init__(self,name,age,gender ,money):    #gender 性别
        self.name = name
        self.age = age
        self.gender = gender
        self.money = money


    def skill(self):
        print(f"{self.name}会编程")

    def save(self):
        with open(f"{self.name}.json", "w", encoding="utf-8")as f:
            json.dump(self.__dict__, f,ensure_ascii=False)
            f.flush()


class Manager(Programmer):         #manager 经理
    def __init__(self,name,age,gender,money,bonus):     # bonus 奖金
        super().__init__(name,age,gender,money)
        self.bonus = bonus


    def gl_skill(self,gl_skill2):
        self.gl_skill2 = gl_skill2
        print("管理程序员")


h1 = Programmer("json",22,"man",2000)
h2 = Manager("杨鑫",18,"man",20000,300000)

# h1.skill()
# h2.gl_skill(h1)
# h2.skill()
# h1.save()
print(h1.__dict__)
print(h2.__dict__)
h2.save()
原文地址:https://www.cnblogs.com/yangxinpython/p/11248089.html