如何将列表作为参数传递给Python类中的方法?
问题原因&修正方案
你写的代码存在3处核心错误,依次是:
- 缩进错误:Python对缩进规则要求严格,类下定义的实例方法需要缩进1层(通常为4个空格),你的
def passArray没有缩进,不属于Solution类的成员,直接会触发语法报错。 - 类型注解依赖缺失:如果你使用的是Python3.8及更早版本,代码里的
List[int]需要先从typing模块导入;Python3.9+可以直接用内置的list[int],不需要额外导入。 - 方法调用逻辑错误:
passArray是类的实例方法,不能直接调用,需要先实例化Solution类得到实例对象,再通过实例调用方法;同时传参时不需要加nums:前缀,直接传入列表参数即可。
正确可运行代码
# Python3.9+版本可以省略下面这行导入,直接把List[int]替换为list[int] from typing import List class Solution: def passArray(self, nums: List[int]) -> None: """ practice """ print(nums) # 先实例化类,再调用对应方法 sol = Solution() sol.passArray([1,2,3])
运行结果
[1, 2, 3]
内容的提问来源于stack exchange,提问作者Mystery Man
相关产品推荐
相关产品推荐

