2017-06-12 54 views
0

我回顾一个同事的代码和他所做的事我也从来没有想过这样做之前:方法声明中的受保护参数?

@staticmethod 
def a_class_method(_parameter='Default') -> tuple: 

它是犹太Python中声明的方法/函数参数为私有?对我而言,下划线意味着'不要碰这个(除非你意识到后果)“,同时使某个参数意味着相反 - 在这里可以自由输入一个变量。

+0

我宁愿问你的同事,但这有时用于标记当前未使用的参数,例如, 'pylint'不会抱怨他们。 – bereal

+0

此外,如果''Default''是实际代码中的某个全局变量,那么这可能是一个优化技巧,因为访问全局变量比Python中的本地变量要慢。 – bereal

回答

1

我从来没有见过它,我不认为这是有道理的。您可以用下划线标记方法本身。但是函数的调用者知道参数意味着。在我看来,在签名中提示参数将被分配给同名的成员变量,而不是强制封装。

0

我不认为这是一个大问题,但你宁愿问你的同事他们在该代码下的含义是什么。但在任何情况下,对于任何陌生人,该代码看起来不明显,所以它应该重写恕我直言。