我在注释中得到了这个奇怪的“预期的语句结束”警告,它作为Python 2/3类型提示起作用:
任何想法,这些类型提示有什么问题,为什么我会收到此警告?
我正在将PyCharm Professional 2018.2.3与Python 3.6(Anaconda)结合使用。
答案 0 :(得分:1)
您可以在Python> = 3.5的类型提示中使用forward references。
def resolve_notehead_wrt_staffline(notehead: 'CropObject', staffline_or_ledger_line: 'CropObject') -> int:
"""blahh blah"""
from muscima.cropobject import CropObject
...
但是即使那样做也无法解决您的情况。这是我建议不要从函数内进行导入的地方。
编辑:我对此稍加注意,意识到可以很容易地简单地说“ 不要那样做”,但是却不知道为什么这样做不是很有帮助。
PEP8说,您不应该在文件的顶部导入任何地方,但是有时候,我们有“非常充分的理由”在其他地方进行导入。
在您的情况下,该函数期望模块已被导入,否则参数对象将不存在。在这种情况下,您最好将导入内容放在该函数范围之外的某个地方。