mypy "too many arguments" 声明@属性 函数时
mypy "too many arguments" when declaring @property function
不明白为什么mypy
不喜欢this @property
method declaration:
@property
def cc_lemmas_dict(self, tag_delim='+', max_cycles=0) -> Dict[str, Set[str]]:
当我在这个模块上 运行 mypy
时,我得到一个 Too many arguments
错误:
$ mypy src/lexc_parser/
src/lexc_parser/lexicon.py:81: error: Too many arguments
Found 1 error in 1 file (checked 7 source files)
我在网上搜索过,但找不到 mypy
不喜欢这个的任何理由。有什么想法吗?
添加@property
意味着您只需访问它就可以调用该方法(不需要括号)。这是一个完整的例子:
class A:
@property
def f(self, x='+'):
return x
a = A()
print(a.f)
print(a.f('-')) # error
请注意 a.f
returns '+'
,这意味着 a.f
被调用了,尽管我们没有提供括号。这是由于 @property
。这也意味着 f
的任何附加参数都是多余的,因为它们无法指定。实际上,a.f(x)
(有 @property
)对应于 a.f()(x)
(没有 属性),没有空间提供 x
作为 [=16= 的参数].事实上,在上面的例子中,错误是
'str' object is not callable
as a.f()
first returns x
这是字符串 '+'
(a.f
部分),然后由于 ()
.
mypy 把这个捡起来真好!
不明白为什么mypy
不喜欢this @property
method declaration:
@property
def cc_lemmas_dict(self, tag_delim='+', max_cycles=0) -> Dict[str, Set[str]]:
当我在这个模块上 运行 mypy
时,我得到一个 Too many arguments
错误:
$ mypy src/lexc_parser/
src/lexc_parser/lexicon.py:81: error: Too many arguments
Found 1 error in 1 file (checked 7 source files)
我在网上搜索过,但找不到 mypy
不喜欢这个的任何理由。有什么想法吗?
添加@property
意味着您只需访问它就可以调用该方法(不需要括号)。这是一个完整的例子:
class A:
@property
def f(self, x='+'):
return x
a = A()
print(a.f)
print(a.f('-')) # error
请注意 a.f
returns '+'
,这意味着 a.f
被调用了,尽管我们没有提供括号。这是由于 @property
。这也意味着 f
的任何附加参数都是多余的,因为它们无法指定。实际上,a.f(x)
(有 @property
)对应于 a.f()(x)
(没有 属性),没有空间提供 x
作为 [=16= 的参数].事实上,在上面的例子中,错误是
'str' object is not callable
as a.f()
first returns x
这是字符串 '+'
(a.f
部分),然后由于 ()
.
mypy 把这个捡起来真好!