次のようなことができます。
class master:
@combomethod
def foo(param):
param.bar() # Param could be type as well as object
class slaveClass( master ):
@classmethod
def bar(cls):
print("This is class method")
slaveType = slaveClass
slaveType.foo()
class slaveInstance( master ):
def __init__(self, data):
self.data = data
def bar(self):
print("This is "+self.data+" method")
slaveType = slaveInstance("instance")
slaveType.foo()
combomethod
は、「インスタンスとクラス メソッドを兼ねるメソッドの作成」で定義されています。
私の質問は、デフォルトの最初のパラメーターをコンボクラスのパラメーターとして使用できないのはなぜですか? または、少なくとも、最初のパラメーターとしてオブジェクトを classmethod に渡すことができないのはなぜですか? クラスメソッドとインスタンスメソッドの違いは知っていますし、デコレーターも知っていますが、組み込み@classmethod
とself
パラメーターの受け渡しがどのように行われるかは理解していないかもしれません。技術的な制限はありますか? または、なぜまだcombomethod
組み込まれていないのですか?