在python中调用static方法而不是classname本身是一个好主意

时间:2016-06-08 03:50:52

标签: python python-2.7 python-3.x

如果我有以下课程。

{{1}}

在这种情况下,方法1是在Python世界中调用staticmethod _bar()或方法2的首选方法吗?

1 个答案:

答案 0 :(得分:4)

编写表达您想要做的事情的代码。如果你想在这里调用这个方法:

class Foo:
    @staticmethod
    def _bar():  # <-- this one
        # do something
        print "static method"

然后指定该特定方法:

Foo._bar()

如果你想调用self._bar解析的任何内容,这意味着你实际上已经决定覆盖它并确保你的代码在覆盖该方法时仍能正常运行,那么请指定{{1} }:

self._bar

最有可能的情况是,此方法并非旨在被覆盖,并且使用它的代码并非旨在预期覆盖它,因此您可能需要self._bar()