【发布时间】:2020-01-09 16:12:36
【问题描述】:
我正在学习 Python。我不确定如何将列表传递给类中的函数。这是我的例子:
class Solution:
def fn_one(self, strs = []):
print(strs[0])
return strs[0]
strs = ["ab", "abc", "abcs", "abx"]
x = Solution.fn_one(strs)
输出:
IndexError: 列表索引超出范围
就像我传递一个空列表一样。我做错了什么?
【问题讨论】:
-
你为什么在这里使用一个类?你的类没有内部状态,这是没有意义的。此外,您不会实例化它的实例,而只是尝试直接调用类上的函数,因此
strs被传递给self(因为它实际上只是您定义的函数)。最后,在使用可变对象作为默认值时应该小心,默认值在函数定义时被评估一次。如果您改变该默认值,则在每次使用默认值的调用中都会看到突变... -
你应该从Python tutorial开始。