Python认为我传递的参数比我多?

2024-04-23 08:48:50 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试用Python设置一些基本的socket代码(好吧,Jython,但我不认为这与此相关)。在

import socket
class Foo(object):
    def __init__(self):
        #some other init code here

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect("localhost", 2057)
        s.send("Testing 1,2,3...")
        data = s.recv()
        s.close()
        print data

它告诉我:

    s.connect("localhost", 2057)
  File "<string>", line 1, in connect
TypeError: connect() takes exactly 2 arguments (3 given)

我感觉有件很简单的事情在盯着我,但我不知道我做错了什么。在


Tags: 代码importselflocalhostdataobjectfooinit
3条回答

必须向connect()方法传递一个元组。在

s.connect( ('localhost', 2057) )

需要的第一个(隐式)参数是self,第二个参数是元组。在

你在传递三个参数!^{1>第二个参数被指定为第二个参数,第二个参数被指定为。在

现在,它之所以不高兴是因为socket.connect()只接受一个参数(当然,如果计算隐式实例参数的话,两个参数):see the docs。在

s.connect(("localhost", 2057))

隐式传递的第三个(或第一个)参数是selfs)。在

Sockets取一个由(HOST, PORT)组成的元组。在

相关问题 更多 >