python - 是否可以从另一个静态方法中调用静态方法

标签 python

是否可以从另一个静态方法中调用一个静态方法?

我试过这个:

class MyClass(object):

    @staticmethod
    def static_method_1(x):
        x = static_method_2(x)
        print x

    @staticmethod
    def static_method_2(x):
        return 2*x

返回

NameError: name 'static_method_2' is not defined

最佳答案

静态方法通过类调用:MyClass.static_method_2(x)

您可能根本不需要静态方法,而是类方法。它们的调用方式相同,但会获取对类的引用,然后您可以使用该类来调用其他方法。

class MyClass(object):

    @classmethod
    def static_method_1(cls, x):
        x = cls.static_method_2(x)
        print x

    @classmethod
    def static_method_2(cls, x):
        return 2*x

请注意,在 Python 中,您永远不会这样做。通常没有理由拥有一个类,除非它存储状态。这些可能都是最好的独立功能。

关于python - 是否可以从另一个静态方法中调用静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54633490/

相关文章:

python - 为什么我必须关闭 shell 才能让我的脚本工作? (写入文本文件)

python - 使用 pandas 和 Matplotlib 自定义日期时间索引的分组条形图

Python basemap 绘制大圆函数

python - aiohttp:如何从 requests.get 检索 aiohttp 服务器中的数据(正文)

python - 在 Python 中禁用全局变量查找

python - 将函数应用于 Pandas 数据框

python - 绘制函数的输出会给出此错误-TypeError : unhashable type: 'numpy.ndarray'

python - 如何覆盖数据框第一行的值

python - 将函数应用于多个数据帧,返回多个 DF 作为输出

python - 数据帧写入 cvs 失败