title: Is it possible to set a Metaclass globally so it applies to all classes created by default?
body: <p>I get that a metaclass can be substituted for type and define how a newly created class behaves.</p>
  
  <p>ex:</p>
  
  <pre><code>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
  
  </code></pre>
  
  <p>However, is there a way of setting NoMixedCase globally, so anytime a new class is created it's behavior is defined by NoMixedCase by default, without havining to inherit from Root?</p>
  
  <p>So if you did...</p>
  
  <pre><code>Class B:  
      def Foo(self):
          pass
  </code></pre>
  
  <p>...it would still check case on method names.   </p>