【问题标题】:A list being two positional arguments?一个列表是两个位置参数?
【发布时间】:2012-02-25 13:22:47
【问题描述】:

我正在尝试在类方法中使用列表作为参数,但它说我给出了 2 个参数而不是一个。我已经制作了我的代码原型并得到了相同的错误,因此更容易掌握:

lol = ["lol1", "lol2", "lol3"]

class HasList:

    def __init__(self):
        self.li = []

    def setList(li):
        self.li = li


lolo = HasList()

lolo.setList(lol)

我得到的错误: TypeError: setList() 正好采用 1 个位置参数(给定 2 个)

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    类中方法的第一个参数总是self

    def setList(self, li):
    

    【讨论】:

      【解决方案2】:

      您忘记将 self 作为参数传递

      def setList(self, li):
          self.li = li
      

      【讨论】:

        【解决方案3】:

        当您调用lolo.setList(lol) 时,Python 实际所做的就是调用setList(lolo,lol)

        但是setList在你的代码中只有一个参数li,所以引发了异常:

        def setList(li):
                self.li = li
        

        只需将self 作为setList 的第一个参数添加即可:

        def setList(self,li):
                self.li = li
        

        【讨论】:

          猜你喜欢
          • 2015-07-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-26
          • 1970-01-01
          相关资源
          最近更新 更多