Использование такой же функции, как экземпляр и ClassMethod в Python

можно сделать что-то подобное:

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 определено в «, создающем метод, который одновременно является методом экземпляра и класса ».

Мой вопрос, почему это так, как это так, что первый параметр по умолчанию не может использоваться в качестве параметра Comboclass? Или, по крайней мере, почему я не могу пройти объект к ClassMethod в качестве первого параметра? Я знаю разницу между ClassMethod и InstanceMethods, и я знаю, что декораторы, но я могу не понять, насколько встроенный @Classmethod и Self прохождение параметров. Есть ли техническое ограничение? Или почему нет Combomethod AllReady встроенный?

6
задан Johu 15 September 2018 в 00:54
поделиться