def create_processor_groups(self, parent_id=None, name: str=None, position: tuple=(0, 0)):
我有这个函数定义,它在名称和位置上给了我无效的语法。如果我删除类型,则错误消失了,但这也应该起作用。怎么了
答案 0 :(得分:1)
我认为您正在用python 2.7编写代码,这可能会引发错误。 Python 3.x应该可以运行您的代码。
答案 1 :(得分:0)
山姆。 执行您的代码时,解析时出现错误Unexpected EOF。这意味着您的代码结束是在块结束之前。 您应该在声明之后(里面)加上一些东西
def create_processor_groups(self, parent_id=None, name: str=None, position: tuple=(0, 0)):
print('something')
答案 2 :(得分:0)
我看不到您的代码无法正常工作的任何直接原因,因此最可能的问题是您使用的Python版本<3.5。
另一个潜在的问题可能是函数主体中缺少任何代码,导致另一个答案中提到的EOF错误(尽管我认为您只是没有将其包含在问题中,因为您没有想到它是相关的)。 请注意,最好在您的 stackoverflow 问题中包含一个简单但完整的示例。
在Python 3.5.1中,使用整数参数可以按预期工作:
def dostuff(a: int):
return 2*a
dostuff(1)
2
使用元组也是如此:
def domore(a: tuple):
return a[0]
domore((3,5))
3
但是对于已知包含类型的元组(可能是您的情况),使用类型别名可能会更好(更严格),如下所示:
from typing import Tuple
TINT = Tuple[int]
def docoolstuff(a: TINT):
return sum(a)
docoolstuff((1, 2, 3))
6
如果由于某种原因无法升级Python版本,则可能还有其他软件包在较低版本的Python中提供类型提示。
答案 3 :(得分:0)
尝试运行以下代码:(这将向您显示您实际使用的Python版本)
import sys
print(sys.version)
如果报告的Python版本是<3.5,则应首先调查环境并使用正确的预期版本。