gpt4 book ai didi

python - 按名称引用对象作为属性

转载 作者:行者123 更新时间:2023-11-28 17:01:16 30 4
gpt4 key购买 nike

<分区>

是否有充分的理由将对象列表存储为“子属性”?在下面的示例中,我在 animals 下的 Zoo 中存储了几个动物对象。属性,例如 zoo.animals.<animal object referenced by name> .这种语法使访问存储动物的属性变得更加容易,我想知道这种结构是否有我尚未考虑的缺点:

class Animal(object):
def __init__(self, name, num_legs, furry):
self.name = name
self.num_legs = num_legs
self.furry = furry

class ObjAsAttributes(object):
def __init__(self, **kwargs):
for k,v in kwargs.items():
setattr(self, k, v)

class Zoo(object):
def __init__(self, animals):
self.name = 'my zoo'
self.hours = '8am-6pm'
animals = {animal.name:animal for animal in animals}
self.animals = ObjAsAttributes(**animals)




animal_list = [Animal(name='bird', num_legs=2, furry=False),
Animal(name='giraffe', num_legs=4, furry=True),
Animal(name='octopus', num_legs=8, furry=False)]

zoo = Zoo(animal_list)
zoo.animals.bird.num_legs
# returns 2

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com