python - 将函数放在类方法中是一种糟糕的编程习惯吗?

标签 python oop

我正在看这样的案例:

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/

相关文章:

python - sklearn 中的 StandardScaler 无法正确拟合,是吗?

python - PyCharm + cProfile + py.test --> pstat 快照 View +调用图为空

java - 通过 Java WebApp 使用 Runtime.exec 运行脚本

python - 如何有效地计算字符串中字符频率的前缀和?

Python 将撇号写入文件

c# - 为什么 C# 不提供 C++ 风格的 'friend' 关键字?

php - 在 PHP 中为 MVC Controller 合并 INSERT Mysql 查询

java - 只能从父类(super class)(C++ 和其他语言)访问的方法

Javascript - 反射(reflect)封装的成员

c++ - 几乎没有差异的类的类设计