python3 super 用法2

class MetaCls(type):
    def __new__(cls, *args, **kwargs):
        print("in MetaCls")
        # return super(MetaCls, cls).__new__(cls,*args, **kwargs) # ok
        return super().__new__(cls, *args, **kwargs)


class FFoo(object):
    @classmethod
    def cls_method(cls, arg):
        print(arg)


class Foo(FFoo, metaclass=MetaCls):
    def __init__(self):
        pass

    def test(self):
        print(777)

    @classmethod
    def cls_method(cls, arg):
        super(Foo, cls).cls_method(arg)
        super().cls_method(
            arg
        )  # super() 只能用在類內部 The zero argument form only works inside a class definition


Foo().test()
Foo.cls_method("clscls")

print("==============================================")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章