python - 类型错误 : __init__() missing 2 required positional arguments: 'client_socket' and 'statusMessage'

标签 python

import socket
import sys

class SimpleClient:
    def __init__(self, client_socket, statusMessage):
        self.client_socket = client_socket
        self.statusMessage = statusMessage

    def connectToServer(self):
        self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

        host  = 'cs5700sp15.ccs.neu.edu'
        port  = 27993

        remote_ip = socket.gethostbyname(host)

        try:
            self.client_socket.connect((remote_ip, port))
        except socket.error:
            print ('Connection failed')
            sys.exit()

        print ('Connection successful')

    def sendHelloMessage(self):
        """This funtion sends the initial HELLO message to the server"""
        nu_id = input('Enter your NUID: ')
        hello_message = 'cs5700spring2015 HELLO {}\n'.format(nu_id)
        self.client_socket.send(bytes(hello_message, 'ascii'))

    def receiveStatusMessage(self):
        """This function receives the STATUS message from the server"""
        self.statusMessage = str(self.client_socket.recv(1024))
        print (self.statusMessage)

        #handleStatusMessage()

def main():
  client = SimpleClient()
  client.connectToServer()
  client.sendHelloMessage()
  client.receiveStatusMessage()  

if __name__ == "__main__":main()

我收到以下错误:

Traceback (most recent call last):
  File "/Users/sanketdeshpande/Documents/workspace/test/project01-simpleclient.py", line 49, in <module>
    if __name__ == "__main__":main()
  File "/Users/sanketdeshpande/Documents/workspace/test/project01-simpleclient.py", line 44, in main
    client = SimpleClient()
TypeError: __init__() missing 2 required positional arguments: 'client_socket' and 'statusMessage'

最佳答案

如果您不想向类启动器传递任何参数,则必须定义启动器并将默认值设置为 None(或任何合适的值)。

例如,

def __init__(self, client_socket=None, statusMessage=""):
    self.client_socket = client_socket
    self.statusMessage = statusMessage

现在您可以在不传递初始化参数的情况下调用您的类实例化。

client = SimpleClient()

关于python - 类型错误 : __init__() missing 2 required positional arguments: 'client_socket' and 'statusMessage' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28122963/

相关文章:

python - 重复尝试和排除子句

python - 为什么这个递归函数不打印两次?

python - Twisted 的 Serialport 和消失的串口设备

python - 验证 django 内联表单集

python - FutureWarning get_params 来自 scikit-learn

python - 在Python中获取包含一行的函数

python - numba 编译函数中范围函数的行为

python - 无法找到 sass 文件

python - Pandas 数据框 : Show duplicate rows - with exact duplicates

python - 为什么 Python 2.7 为 threading.Thread 创建进程