python 对象创建_从Python中的基类对象创建对象

我有一个基类:class Animal(object):

def __init__(self, name=None, food=None):

self.name = name

self.food = food

def eat(self):

print "The %s eats some %s" % (self.name, self.food)

以及一个扩展它的类:

^{pr2}$

假设我有一个Animal对象,创建于此:>>> fluffy_as_animal = Animal('dog', 'kibbles')

在python中有没有一种简单的方法可以从fluffy_as_animal创建一个Pet对象,而不是实际写出:>>>> fluffy_as_pet = Pet(fluffy_as_animal.name, fluffy_as_animal.food)

更新

我做这个实现的原因是我有一个类,它有一个函数,它返回一组Animal类型的对象,所有这些对象我都想实际用作Pet对象:class AnimalStore(object):

def fetch(count, query=None, server=None, *args, **kwargs):

connection = connect_to_server(server)

resp = connection.fetch_animals(query)

objects = parse_response(resp)

animals = []

for a in objects[:count]:

animals.append(Animal(a['name'], a.['food']))

return animals

class PetStore(AnimalStore):

def fetch(count, query=None, server=None, *args, **kwargs):

query = 'type=pet AND %s' % query

animals = super(PetFactory, self).fetch(count, query, server, *args, **kwargs)

pets = []

for animal in animals:

pets.append(magic_function(animal))

return pets

AnimalStore和PetStore位于不同的模块中。AnimalStore是标准AnimalAPI的一部分,不会改变。基本上,我想扩展AnimalAPI,方法是使用与动物相同的机制获取宠物列表,并且我希望能够利用动物API已经为其Animal和AnimalStore类提供的所有其他内置函数。在

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值