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類提供的所有其他內置函數。在
總結
以上是生活随笔為你收集整理的python 对象创建_从Python中的基类对象创建对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 巴巴腾机器人怎么开机_【巴巴腾智能机器人
- 下一篇: win7更新错误0x800b0109_W