Can';t将python列表项传递给函数

Can';t将python列表项传递给函数,python,list,function,typeerror,Python,List,Function,Typeerror,嗨,我正在做一个python程序。我能够从类的函数中检索数据,但不能向它们发送数据 class someClass: someList = [] def sendMessage(message): someList.append(message) messageSender = someClass() listToSend = [] #loaded elswhere someClass.sendMes

嗨,我正在做一个python程序。我能够从类的函数中检索数据,但不能向它们发送数据

    class someClass:
        someList = []
        def sendMessage(message):
            someList.append(message)

    messageSender = someClass()

    listToSend = [] #loaded elswhere 

    someClass.sendMessage(listToSend[1])
当我继续运行它时,会出现以下错误:

     TypeError: sendMessage() takes exactly 1 argument (2 given)

如果我只使用
someClass.someList=listToSend
,它可以工作,但这是一个较大程序的单元测试,所以我确实需要让sendMessage工作。你知道怎么回事吗?

在所有类方法中,你应该在方法的第一个参数
self
后面加上其他参数:

class someClass:
    someList = []
    def sendMessage(self, message):
        someList.append(message)

messageSender = someClass()

listToSend = [] #loaded elswhere 

someClass.sendMessage(listToSend[1])

在所有类方法中,您应该在方法的第一个参数
self
后面加上其他参数:

class someClass:
    someList = []
    def sendMessage(self, message):
        someList.append(message)

messageSender = someClass()

listToSend = [] #loaded elswhere 

someClass.sendMessage(listToSend[1])

您忘记了sendMessage函数声明中的self参数。
sendMessage(message)
应改为
sendMessage(self,message)

类someClass: someList=[] def发送消息(自我,消息): someList.append(消息)

为什么它告诉我我传入了两个参数? 无论何时调用类的方法,例如:

dog.bark()
您正在将self(dog变量)传递到 方法,因此内部调用是
dog.bark(self)

规则是:

方法调用中的可见参数+1=方法声明中的可见参数

您忘记了sendMessage函数声明中的self参数。
sendMessage(message)
应改为
sendMessage(self,message)

类someClass: someList=[] def发送消息(自我,消息): someList.append(消息)

为什么它告诉我我传入了两个参数? 无论何时调用类的方法,例如:

dog.bark()
您正在将self(dog变量)传递到 方法,因此内部调用是
dog.bark(self)

规则是:

方法调用中的可见参数+1=方法声明中的可见参数

它甚至不能访问单独的类,但会锁定函数调用。我用那个文档使它甚至不能访问单独的类,而是锁定函数调用。我用那个医生做的