1
我正在制作一组调用在不同模块中定义的函数的类。要知道他们必须调用哪个函数,该函数将被存储为该类的一个变量(或者至少这是我所尝试的)。但是,当我尝试调用它时,它会自动假定该函数是一个类方法,并将“self”作为参数传递,这在逻辑上会导致错误,因为该函数接收的参数过多。你知道我怎样才能避免这个函数成为一个类的方法。Python中,如何将非类方法保留为非类方法?
的代码将是这样的:
# Module A
def func1(a):
print a
def func2(a):
print a,a
# Module B
from A import *
class Parent:
def func():
self.sonFunc("Hiya!")
class Son1:
sonFunc = func1
class Son2:
sonFunc = func2
so = Son1()
s.func()
# Should print "Hiya!"
s = Son2()
s.func()
# Should print "Hiya! Hiya!"
感谢
+1为非标准/奇数。 –
哇,谢谢。 'staticmethod'完美地解决了它。尽管目前这是过分的,但我喜欢阅读元类。 – Blackzafiro