Python中元类的使用案例:将Foo中的所有小写的类属性变成大写的属性

"""
将Foo中的所有小写的类属性变成大写的属性
"""
def upper_attr(class_name, class_parents, class_attr):
	# 遍历属性字典,把不是__开头的属性名字变成大写
	new_attr = {}
	for name, value in class_attr.items():
		new_attr[name.upper()] = value
	
	# 调用type来创建一个类
	return type(class_name, class_parents, new_attr)


class Foo(object, metaclass=upper_attr):
	bar = "bip"


print(hasattr(Foo, "bar"))
print(hasattr(Foo, "BAE"))

f = Foo
print(f.BAR)

False
True
bip

猜你喜欢

转载自blog.csdn.net/weixin_40576010/article/details/88396553