>>> class Test(object):
>>> def test(self,*arg):
>>> print(arg[0],arg[1])
>>> p = Test()
>>> t = 2,3
>>> p.test(t)
Run Code Online (Sandbox Code Playgroud)
给我IndexError:元组索引超出范围
这是为什么?以及如何获得该元组的值?
你只传入一个参数(整个元组(2, 3)),所以只arg[0]存在; 如果您将元组值视为单独的参数,请使用*args调用语法应用它们:
p.test(*t)
Run Code Online (Sandbox Code Playgroud)
另一种方法是不在*arg函数定义中使用catchall参数:
def test(self, arg):
Run Code Online (Sandbox Code Playgroud)
现在你的函数有两个正常的位置参数,self和arg.你只能传入一个参数,如果那是你的元组,arg[0]并且arg[1]会按预期工作.
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |