динамическое связывание метода в python

Несколько способов сделать это:

var str1:String="\(23)"
var str2:String=String(format:"%d",234)
1
задан fivelements 16 January 2019 в 04:16
поделиться

1 ответ

Это довольно просто, просто исправьте проход двоеточий в self и cls:

class A:
    @staticmethod
    def some_method():
        # pass
        return

    @classmethod
    def do_something(cls):
        cls.some_method()
        return

class B(A):
    @staticmethod
    def some_method():
        print("I did stuff!")
        return

    @classmethod
    def run(cls):
        B.do_something()
        return

k = B()
k.run()
>>>"I did stuff!"

И если вы хотите вызвать старый do_something (тот, что в классе A ) из класса B, просто перейдите в соответствующий класс. В классе B:

@classmethod
def run(cls):
    A.do_something()
    return
0
ответ дан Primusa 16 January 2019 в 04:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: