在python中实现final类 当然要利用下metaclass做手脚啦 ``` class Final(type): def __new__(cls, name, bases, classdict): for b in bases: if isinstance(b, Final): raise TypeError("type '{0}' is Final type".format(b.__name__)) return type.__new__(cls, name, bases, dict(classdict)) class Hi(object): def hi(self): print("hi") class SubHi(Hi, metaclass=Final): pass # 这个没问题 s = SubHi() s.hi() # TypeError: type 'SubHi' is Final type class SubHi2(SubHi): pass ``` 来自 大脸猪 写于 2019-07-29 15:15 -- 更新于2020-10-19 13:06 -- 0 条评论