【发布时间】:2015-04-11 17:50:31
【问题描述】:
我有一个类似这样的结构:
def foobar():
print('FOOBAR!')
class SampleClass:
foo = foobar
def printfunc(self):
self.foo()
这不起作用,因为原始的 foobar 函数无法处理 self 被传递给它 - 它不是任何类或对象的一部分。 Python 也不会让我添加 @staticmethod 装饰器。
我无法控制foobar 的定义,我可能必须在子类中覆盖foo 的值。
如何在不传递调用它的对象的情况下调用 foo?
【问题讨论】:
-
为什么不只是
def foo(self): foobar()? -
@Huey 因为在这种特殊情况下,它不是我可以定义的。它是一个外部方法,将被子类中的另一个外部方法覆盖。
-
尝试使用
classmethod。
标签: python python-2.7 static-methods