Python:为什么函数的重新定义不是错误?有没有一种骇人听闻的方式来拥有该功能?

标签 python

<分区>

例如:

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

foo()

默默地产生:second foo

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

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

最佳答案

如何使用 pylint

pylint your_code.py

your_code.py 成为

1 def dup():
2    print 'a'
3 def dup():
4    print 'a'
5
6 dup()

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

...

如果您使用 Pydev ,您可以交互式地查找重复项。 当 mouseover 第二个 dup 时,它显示 Duplicated signature: dup

pydev

关于Python:为什么函数的重新定义不是错误?有没有一种骇人听闻的方式来拥有该功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23154893/

相关文章:

python Pandas : drop a df column if condition

python点击帮助格式化换行符

python - pandas 根据缺失值的条件逻辑添加新列

python - OpenCV :Text Processing and Noise Removal

python - 在 Django 过滤器中连接两个模型

Python OpenCV : draw outer contours inside a specific contour

Pythonanywhere 电影

python - 按时间窗口分组的 Pandas

python - 如何手动卸载openerp模块

python - 使用 Tweepy 查找转推的转推数?