问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python 元类创建行为 子类会继承么

发布网友 发布时间:2022-04-30 12:47

我来回答

2个回答

热心网友 时间:2022-04-18 05:27

# 自定义一个元类继承type
class MyType(type):
def __new__(cls, class_name, class_bases, class_attrs):
# 创建一个新的字典,将就旧字典(class_attrs)中的所有key变为大写
new_attrs = {}
for key,value in class_attrs.items():
if not key.startswith('__'):
new_attrs[key.upper()] = value
#条用type元类的__new__方法生成一个类对象,此类对象的所有属性都变为大写
return type.__new__(cls, class_name, class_bases, new_attrs)
# 定义A类 元类使用MyType
class A(object, metaclass=MyType):
a = 5

# 定义B类,并继承自A类
class B(A):
b = 6
if __name__ == '__main__':
print(hasattr(A, 'a')) False
print(hasattr(A, 'A')) True
print(hasattr(B, 'b')) False
print(hasattr(B, 'B')) True
A类和其子类B类中的属性都变成了大写,所以metaclass是可以被继承的

热心网友 时间:2022-04-18 06:45

<pre>#!/usr/bin/pythonclass Ppoint: def __init__(self, x, y): self.x = x self.y = y # def __del__(self): # class_name = self.__class__.__name__ # print class_name, "destroyed"class Spring_Point(Ppoint): def __init__(self): Ppoint.__init__(self, 1, 2) # super(Spring_Point, self).__init__(1, 2)if __name__ == "__main__": xx = Spring_Point() print xx.__dict__</pre>
以上是用old的方式来创建一个class, Ppoint, class Spring_Point继承Spring_Point, 在调用父类的构造函数的时候,必须使用
<pre>Ppoint.__init__(self, 1, 2)</pre>
不能使用
<pre>super(Spring_Point, self).__init__(1, 2)</pre>
如果使用心得方式创建类
<pre>#!/usr/bin/pythonclass Ppoint(object): def __init__(self, x, y): self.x = x self.y = y # def __del__(self): # class_name = self.__class__.__name__ # print class_name, "destroyed"class Spring_Point(Ppoint): def __init__(self): Ppoint.__init__(self, 1, 2) # super(Spring_Point, self).__init__(1, 2)if __name__ == "__main__": xx = Spring_Point() print xx.__dict__</pre>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何批量导出全部微信好友微信号?快速导出微信联系人 交强险什么价格 命运冠位指定必练五星英灵是什么 命运冠位指定必练五星英灵推荐 自制豆沙馅能保存多久 红豆沙馅怎么保存 我高三,从现在到高考分数从350提到500多,有可能吗?我是文科生 高三350分还有5个月能提多少分 文科复读350多分可以提高多少 钱钟书-谈艺录-读本目录 送茶叶都有什么讲究呢? 中国文化送礼茶叶有什么讲究茶叶送礼有什么讲究和注意事项 Mate10手机投屏时使用 VGA 和 DVI 接口大屏不能正常显示 python 3.x 中的元类 有人买过Type-C转DVI转换器吗? 为什么vivo手机的充电插口是反的? vivo手机充电接口坏了 怎么能充电 电脑桌面的快捷方式变成白的,但是软件可以正常运行? 电脑桌面变成白色e的图标了,但可以打开程序,是怎么回事? 电脑图片只显示白色的图标,但是可以打开看,已经把始终显示图标,从不显示缩略图去掉勾选~ 我手机掉马桶里了拿出来打电话有声音看电视微信没有声音、怎么办啊 手机掉厕所里了!拿起来后要怎么办? 手机掉厕所捞出来关机用水冲了下!接下来怎么办! nova7手机掉进厕所里了捞出来之后晃动过,也用吹风机吹过,怎么办? 荣耀手机掉到厕所里了,但是马上就捞起来了,而且手机也没有问题,,已经... lxv-009最后一个名字 vivoy55系统修复 vivo手机系统出错开不了机怎么办 如果vivo手机系统损坏了怎么办。。。 在真实的唐代,真的有《长安十二时辰》中的“上元节”吗? 谁知道,手机原装浏览器删了,怎么恢复 我不小心把把oppo手机自带浏览器删了,现在手机上没有百度等浏览器,什么都查不到怎么办? python 元类生成类的方法是什么类型的 请问一下什么是元类啊 ?它的具体作用是什么?谢谢您 关于python元类遇到冲突问题的问题(Metaclass conflict)? 元类是什么,我们将它们用于什么? python求助,继承type是个怎么回事 高手能举例说下python语言中元类要怎么理解吗 pythoncharm有哪些奇技淫巧 这是哪的电话? 光大银行信用卡1积分值多少钱 被封了,没好友辅助,如何解封? 被封了没有好友辅助验证怎么办? 上一次的网贷还没还清可以继续贷吗??? 工行企业网上银行“网贷通”业务的约定还款期限是否包含约定日期当天? 限制登录没有好友辅助验证可以解封吗? 网贷欠了两万多块钱,七天期限的,马上到期了,哪位好心人先帮帮我还上, 网贷一次还清的最长还款期限是多久? 农村信用社小额贷款1年续贷期限是多长时间 被封了没有好友辅助验证怎么办? _百度问一问 我网贷有过逾期,以后再想贷款是不是就不好贷了