別のモジュールで定義された関数を呼び出す一連のクラスを作成しています。どの関数を呼び出す必要があるかを知るために、関数はクラスの変数として格納されます (または、少なくともそれが私が試したことです)。ただし、呼び出そうとすると、関数がクラスメソッドであると自動的に想定され、「self」が引数として渡されます。関数が受け取った引数が多すぎるため、論理的にエラーが発生します。関数がクラスメソッドになるのを避ける方法を知っていますか。
コードは次のようになります。
# 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!"
ありがとう