为什么@property 在定义前需要换行

问题描述

为什么python解析器不允许以下内容

@property def link(self): return 'https://github.com/%s' % self.repo
            ^
SyntaxError: invalid Syntax

当然,它确实允许使用换行符:

@property 
def link(self): 
    return 'https://github.com/%s' % self.repo

这是否被认为是一个错误,或者为什么解析器不允许这样做?

作为参考,许多其他语句允许诸如“换行符或”之类的内容。例如,python delete statement 的语法如下:

del_stmt:
    | 'del' del_targets &(';' | NEWLINE) 

而装饰器只是:

decorators: ('@' named_expression NEWLINE )+ 

所以我很好奇为什么该物业不允许“将它们混在一起”。有时,当我有一个很长的类,其中很多字段都是属性时,我会发现它很有帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)