在类代码中预填充实例(Python)

2024-05-14 08:41:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着这样做,当我可以运行一个函数,它将填充一个类与代码中包含的实例夫妇。你知道吗

class Pets(object):

  def __init__(self, name, scientific_name, feet_number, type)
    super(Pets,self).__init__()
    self.name = name
    self.scientific_name = scientific_name
    self.feet_number = feet_number
    self.type = type

这就是我被卡住的地方。 我想做一个函数,它有一个实例列表(例如狗,猫,马…),这样当函数运行时,这些实例可以立即被访问。你知道吗

我从Creating dynamically named variables from user input(第二段,第一句)这样的地方知道,我所要求的是可能的,我只是不知道它的语法。你知道吗


Tags: 实例函数代码nameselfnumberobjectinit
1条回答
网友
1楼 · 发布于 2024-05-14 08:41:03

这就是你想做的吗?你知道吗

class Pet(object):
  def __init__(self, details):
    self.name = details[0]
    self.scientific_name = details[1]
    self.feet_number = details[2]
    self.type = details[3]

if __name__ == '__main__':
    pet_list = [('Cat', 'Kitty Cat', 4, 'Cuddly'), ('Dog', 'Puppy Wuppy', 3, 'Licky')]
    pets = [Pet(item) for item in pet_list]

这给了你:

pets
> [<__main__.Pet at 0x8134d30>, <__main__.Pet at 0x8134d68>]

pets[0]
> <__main__.Pet at 0x8134d30>

pets[0].name
> 'Cat'

pets[0].scientific_name
> 'Kitty Cat'

pets[1].name
> 'Dog'

根据你想做什么,有很多方法可以组合在一起。例如,您可以创建一个名为Pet()的主类,其中包含一些对所有宠物都适用的基本属性和方法,然后为每个宠物创建继承基类的特定类,例如class Cat(Pet):

或者您可以让Pet类根据name传入的内容了解所有其他细节,然后相应地填充实例变量。你知道吗

相关问题 更多 >

    热门问题