Python如果一个父类已经实例化了,现在想新建一个子类,给父类的这一个实例添加两个属性,如何实现?

#ForexampleclassPeople:def__init__(self,name,age):self.name=nameself.age=age#现在有了一个实例... #For example
class People:
def __init__(self, name, age):
self.name = name
self.age = age
#现在有了一个实例
tom = People("Tom", 22)

我想实现一个类 class Worker, 添加一个 salary 属性,但生成这一 worker类的时候只能调用tom 这一对象,同时我也不想把tom的属性一个一个的读出来在加到Worker类的属性中
肿么办?
展开
 我来答
野人拆
2013-05-14 · TA获得超过1069个赞
知道小有建树答主
回答量:815
采纳率:57%
帮助的人:550万
展开全部
class People(object):
  def __init__(self, name, age):
    self.name = name
    self.age = age
class worker(People):
    def __init__(self,name,age,salary):
        super(worker,self).__init__(name,age)
        self.salary = salary
tom = People("Tom", 22)
print type(tom).__name__
#not a safe way, but no new object
tom.__class__=worker
print type(tom).__name__
tom.salary = 250
print tom.salary
#safe way, but create a new object
workerTom = worker("Tom", 22, 200)
tom.__dict__ = workerTom.__dict__
print type(tom).__name__
print tom.salary
百度网友87b2a52
2013-05-13 · 知道合伙人软件行家
百度网友87b2a52
知道合伙人软件行家
采纳数:523 获赞数:3490
毕业于南京大学,硕士学位。10年软件研发经验。现任信息系统架构师。

向TA提问 私信TA
展开全部
class Worker(People):
def __init__(self, name, age,salary):
self.name = name
self.age = age
self.salary=salary

或者你也可以用装饰器模式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式