Python:为什么重新定义函数不是错误?有这种功能的hackish方式?

sub*_*bba 3 python

例如:

def foo():
    print 'first foo'
def foo():
    print 'second foo'

foo()
Run Code Online (Sandbox Code Playgroud)

默默地产生: second foo

今天我在同一个文件中复制/粘贴了一个函数定义,并在第二个定义的主体中更改了几行,但忘了更改函数名本身.我长时间挠头看着输出,我花了一段时间才弄明白.

如何强制解释器在重新定义函数时至少抛出一个警告?提前致谢.

eme*_*eth 10

怎么用pylint

pylint your_code.py
Run Code Online (Sandbox Code Playgroud)

your_code.py

1 def dup():
2    print 'a'
3 def dup():
4    print 'a'
5
6 dup()
Run Code Online (Sandbox Code Playgroud)

pylint 节目

C:  1,0: Missing docstring
C:  1,0:dup: Missing docstring
E:  3,0:dup: function already defined line 1     <--- HERE!!!!
C:  3,0:dup: Missing docstring

...
Run Code Online (Sandbox Code Playgroud)

如果您正在使用Pydev,您可以交互式地找到重复.当mouseover第二dup,它说Duplicated signature: dup.

PyDev的