如何解决pylint“太多局部变量”试图告诉我什么,我该怎么办?
我正在研究一个python函数,该函数从Excel或CSV文件中读取各种测量数据,并吐出一个dict,其中包含带有元数据的字符串和带有数据的pandas数据框。
def reader(file):
"""
blablaba
"""
#500 lines of code
output = {'Error': Errorflag,'Name': Name,'Location': Location,# 20 more variables
'Lat': Lat,'Lon': Lon,'Number': Number,'data': data}
return output
整个过程运行良好,但是pylint告诉我Too many local variables (120/15)pylint(too-many-locals
。因此,我显然违反了“良好”的编码风格,但我想知道此要求来自何处以及对此我该怎么办。
pylint documentation仅有助于说明“ 局部变量太多(%s /%s),当函数或方法具有太多局部变量时使用。” This site是告诉我我的功能可能太复杂了,应该考虑使用单独的功能。
我当然可以这样做,但这要么意味着将reader
转换为多个功能(location_metadatareader
,type_metadatareader
,errorfinder
,datareader
等。 。),这会使使用和导入它成为地狱,或者我可以将函数中的一堆东西变成函数本身,例如代替
elevation = elev.replace(",",".")
elevStart = elevation.find(';')+1
elevEnd = elevation.find('\n')
elevation = elevString1[elevStart:elevEnd]
elev = float(elev)
我可以封装在一个函数中
def elev(elevation):
elevation = elev.replace(",".")
elevStart = elevation.find(';')+1
elevEnd = elevation.find('\n')
elevation = elevString1[elevStart:elevEnd]
elev = float(elev)
return(elev)
elev = elev(elevation)
添加更多行而没有太多收获。
那么,我的选择是什么(除了重新考虑整个功能或关闭pylint的这一部分)?但更重要的是:这种样式约定的原因是什么?为什么我(或不应该)要做一些工作来遵循它?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。