如何为列表声明创建自定义类型?基于person类的实现疑问
创建指定Person类型列表的可行方法
Python是动态类型语言,不像Java、C++那样需要在变量前声明类型,你之前的写法不符合Python语法规则,下面是几种可行的实现方式:
1. 创建空列表后逐步添加Person实例
先定义好你的Person类,然后初始化空列表,之后按需往里面添加Person对象:
class Person: def __init__(self, name=None): self.name = name # 初始化空列表 person_list = [] # 添加Person实例 person_list.append(Person("Alice")) person_list.append(Person("Bob"))
2. 用列表推导式批量创建Person实例列表
如果需要一次性生成包含多个Person实例的列表,用列表推导式最方便,还能给每个实例初始化参数:
# 创建100个默认的Person实例 person_list = [Person() for _ in range(100)] # 给每个实例分配不同的初始化参数(比如编号) person_list = [Person(f"User_{i}") for i in range(100)]
注意:别用
[Person()] * 100,这种写法会创建100个指向同一个Person实例的引用,修改其中一个会影响所有元素。
3. 用类型注解标注列表元素类型(仅做提示)
如果只是想明确这个列表应该存放Person类型(Python不会强制检查,但IDE会给出语法提示),可以用typing模块的List做类型注解:
from typing import List class Person: pass # 标注该列表的元素应为Person类型 person_list: List[Person] = [] # 后续添加Person实例就符合注解要求 person_list.append(Person())
内容的提问来源于stack exchange,提问作者John Murphy
相关产品推荐
相关产品推荐

