这很烦人:

class MyClass:
    @staticmethod
    def foo():
        print "hi"

    @staticmethod
    def bar():
        MyClass.foo()

有没有一种方法可以在不命名MyClass的情况下使此工作正常进行?也就是说,我只能在最后一行说foo()吗?

最佳答案

无法使用foo来获得想要的东西。没有隐式类作用域,因此foo是本地或全局的,都不希望使用。

您可能会发现类方法更有用:

class MyClass:
    @classmethod
    def foo(cls):
        print "hi"

    @classmethod
    def bar(cls):
        cls.foo()

这样,至少您不必重复该类的名称。

10-01 19:38
查看更多