class A():
num = 100
def print_b(self):
print(self.num)
@ staticmethod
def print_static():
print('------------------hahahahhahh-----------------')
@classmethod
def print_class(cls):
print(cls.num)
B = type('B',(A,),{'print_b':print_b,'print_static':print_static,'print_class':print_class}
b = B()
b.print_b()
b.print_static()
b.print_class()
9、查看实例对象由谁创建出来的:
object.__class__
10、元类的实际作用哦(很重要的哦)
class Upper(type): # 利用元类将类的非私有属性名修改为大写名称,很厉害的哦。。。。。
def __new__(cls, class_name, class_parents, class_attr):
new_attr = {}
for name, value in class_attr.items():
if not name.startswith("__"):
new_attr[name.upper()] = value
return type(class_name, class_parents, new_attr)
class Foo(object, metaclass=Upper):
bar = 'bip'
print(hasattr(Foo, 'BAR'))
p = Foo()
print(p.BAR)