Я получаю, что метакласс можно заменить типом и определить, как ведет себя вновь созданный класс.
ex:
class NoMixedCase(type):
def __new__(cls,clsname,base,clsdict):
for name in clsdict:
if name.lower() != name:
raise TypeError("Bad name.Don't mix case!")
return super().__new__(cls,clsname,base,clsdict)
class Root(metaclass=NoMixedCase):
pass
class B(Root):
def Foo(self): #type error
pass
Однако, существует ли способ настройки NoMixedCase глобально, поэтому каждый раз, когда создается новый класс, его поведение по умолчанию определяется NoMixedCase, без необходимости наследовать от Root?
Так что, если вы сделали ...
Class B:
def Foo(self):
pass
... он по-прежнему проверяет регистр имен методов.