【问题标题】:I want to explicitly define a new class object. But how do I specify that I want a list of objects我想明确定义一个新的类对象。但是我如何指定我想要一个对象列表
【发布时间】:2023-02-07 11:04:54
【问题描述】:

说我有一类人

class person()
   def __init__(self, fname:str, lname:str):
      self.fname = fname
      self.lname = lname

怎么说我在等一个人的名单?

class group()
   def __init__(self, groupName:str, people:person|person[]):
      self.groupName = groupName
      self.people = people

我可以使用 ... people:person|list[person]): 吗?

【问题讨论】:

  • 为什么 person| 部分,如果你特别期待一个列表和不是person

标签: python python-3.x class object oop


【解决方案1】:

person 对象的列表是 list[person](或 typing.List[person],在 Python 3.9 之前)。

【讨论】:

    【解决方案2】:

    是的,您可以使用people: list[person] 来指示people attribute 应该是一个人员对象列表。在这种情况下不使用 | 符号,因为您只想指定一个类型,即人员对象列表。

    class group():
       def __init__(self, groupName:str, people:list[person]):
          self.groupName = groupName
          self.people = people
    

    当您使用 | 符号时,表示该属性可以存储一种类型或另一种类型。例如,person | list[person] 表示该属性可以存储单个人物对象或人物对象列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-07
      • 2013-07-18
      • 2013-11-12
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多