如何为函数的数组输入指定字符串数组类型提示?
当然可以用类型提示标注字符串数组!
在Python中,你完全可以通过类型提示明确指定options参数是一个字符串数组,具体有两种常用写法,根据你的Python版本选择即可:
1. Python 3.9+ 推荐写法:list[str]
从Python 3.9开始,标准库支持直接用内置的list结合方括号标注元素类型,写法简洁直观:
def sterileInput(options: list[str] = []) -> str: # 这里的options就被明确标注为字符串列表了 pass
2. Python 3.8及以下兼容写法:List[str]
如果你的项目还在使用Python 3.8或更早版本,需要从typing模块导入List来实现同样的效果:
from typing import List def sterileInput(options: List[str] = []) -> str: pass
额外提醒:可变默认参数的陷阱
顺便提个小细节——用[]作为默认参数值可能会引发意外行为:因为列表是可变对象,这个默认列表会在函数定义时创建,多次调用函数时会复用同一个列表实例,可能导致数据残留。更安全的写法是用None作为默认值,然后在函数内部初始化:
def sterileInput(options: list[str] | None = None) -> str: # 如果传入None,就初始化为空列表 options = options or [] # 后续逻辑 pass
这样既实现了清晰的类型提示,又避免了可变默认参数的潜在问题。
内容的提问来源于stack exchange,提问作者Darcy Power
相关产品推荐
相关产品推荐

