我刚刚开始学习Python,我决定从3.2
开始我尝试了一些套接字管理代码,但是我收到了语法错误。 (该线在2.7中工作得很好)
有什么想法吗?
def __init__(self, (socket, address)):
File "./main.py", line 16
def __init__(self, (socket, address)):
^
SyntaxError: invalid syntax
答案 0 :(得分:3)
您无法在Python 3中使用元组参数定义方法。这在Python 2中是可行的,但已删除。请参阅PEP 3113 Removal of Tuple Parameter Unpacking。
语法内省很难(甚至IronPython不可能),与其他新的参数语法(注释和仅限关键字的参数)不兼容,产生了无用的错误消息,并且是最不为人知和最少使用的功能之一语言。
您必须在方法中进行解包:
def __init__(self, socket_address):
socket, address = socket_address