我正在看这样的案例:
def parse_item(self, response):
item = MetrocItem()
def ver(string):
if string:
return string
else:
return 'null'
item['latitude'] = ver(response.xpath('//input[@id="latitude"]/@value').extract_first())
它有效,但是有更好的方法吗?
最佳答案
正如@Graipher 在评论中提到的,这在某些情况下当然有效,但在您的特定情况下,这是不必要的。如果您的函数依赖于一个局部变量,那么您将返回一个闭包,每次调用该方法时都需要重新构建。但在您的情况下,每次调用该方法时该函数的行为方式都相同,因此将其全局定义为私有(private)方法,甚至在您的情况下定义为 lambda 会更有意义。
ver = lambda x: x if x else 'null'
但首选方法是简单地在全局范围内定义它并以下划线开头的名称以明确意图。
def _ver(string):
...
关于python - 将函数放在类方法中是一种糟糕的编程习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49860649/