面向对象设计的五大原则元类-metaclass反射机制type、objectpython之面向对象魔术方法__get__、__getattr__、getattr()、__getattribute__、__getitem__的区别python描述符