2019年10月4日 元类

metaclass 元类

元类是类的类,是类的模版。

元类是用来控制如何创建类的,正如类是创建对象的模版一样

元类的实例为类。

type事python的一个内建元类,用来直接控制生成类,python中任何class定义的类其实都是type类实例化的对象。

class Foo:
    pass

f1=Foo() #f1是通过Foo类实例化的对象
print(type(f1))#用type函数查看是谁的类
print(type(Foo))#类的类就是type


def __init__(self,name,age):#如果需要再type中增加构造函数,就需要将函数放到最外面
    self.name=name
    self.age=age
FFo=type('FFo',(object,),{'x':1,'__init__':__init__}) #用type生成类,第一个事类名,第二个元祖形式是父类,因为是新式类所以父类默认就是object,后面是用字典形式表达参数
print(FFo)
f1=FFo('SXJ',11)
print(f1.__dict__)

>>>>

<class '__main__.Foo'>
<class 'type'>
<class '__main__.FFo'>
{'name': 'SXJ', 'age': 11}

 

可以通过继承type来自定义元类。

class MyType(type): #定义元类
    def __init__(self,a,b,c):
        print('元类构造函数执行')
        print(self,'\n',a,'\n',b,'\n',c) #self 就是元类mytype的实例,也就是Foo

    def __call__(self, *args, **kwargs):
        print('>>>>>')
        print(self)
        print(args,kwargs)
        obj=object.__new__(self) #创建一个新对象 objcet.__new__(Foo) 这一步就是产生F1的
        self.__init__(obj,*args, **kwargs)# 就是在调用Foo.__init__()把Foo内的init中的参数原封不动的传过去
        print(obj)
        return obj #返回值赋予给F1

class Foo(metaclass=MyType):#声明元类 Foo=Mytype('Foo',(object,),{'name':name}),传递了4个参数给Mytype,触发init方法,所以mytype中的init需要4个参数
    def __init__(self,name):
        self.name=name #f1.name=name

f1=Foo('sxj') #实例化会触发init 和call
print(f1.__dict__)

>>>>

元类构造函数执行
<class '__main__.Foo'>
Foo
()
{'__module__': '__main__', '__qualname__': 'Foo', '__init__': <function Foo.__init__ at 0x10219d0d0>}

>>>>>
<class '__main__.Foo'>
('sxj',) {}
<__main__.Foo object at 0x102176f98>
{'name': 'sxj'}

 

 

精简版

class MyType(type): #定义元类
    def __init__(self,a,b,c):
        print('元类构造函数执行')
    def __call__(self, *args, **kwargs):
        obj=object.__new__(self) #创建一个新对象 objcet.__new__(Foo) 这一步就是产生F1的
        self.__init__(obj,*args, **kwargs)# 就是在调用Foo.__init__()把Foo内的init中的参数原封不动的传过去
        return obj #返回值赋予给F1

class Foo(metaclass=MyType):#声明元类 Foo=Mytype('Foo',(object,),{'name':name}),传递了4个参数给Mytype,触发init方法,所以mytype中的init需要4个参数
    def __init__(self,name):
        self.name=name #f1.name=name

f1=Foo('sxj') #实例化会触发init 和call

 

转载于:https://www.cnblogs.com/python1988/p/11623105.html

2019年10月2日药品销售数据集分析与应用 在当今数字化时代,数据分析已成为企业洞察市场趋势和增强竞争力的关键工具。本章节将介绍销量数据集的概况,数据集覆盖了从2019年10月2日的销售记录,这不仅包括了销售的日期和时间,还涉及药品名称、销售数量和金额等关键信息。数据集中的每一条记录都代表了销售历史上的一个瞬间,它们是分析销售趋势、优化库存管理和预测未来销售的基石。通过本章,我们将对数据集的整体结构有一个初步了解,并设置分析的基本框架。为了便于理解,我们会首先浏览数据集中的关键字段和它们的作用。 阅读详情

相关推荐

二阶高通滤波器硬件设计:5种RC到有源方案对比与选型

在传感器前端和音频信号调理中,二阶高通滤波器是抑制直流偏移与低频干扰的关键模块。其设计核心围绕截止频率、品质因数Q、增益与噪声四个指标展开,其中Q值决定滤波器在转折频率附近的响应形状,如Butterworth最大平坦响应需Q=0.707。从纯无源RC电路到引入运放的有源拓扑,演变逻辑在于解决负载效应、提供增益并借助反馈提升Q值。实际工程中,RC级联、VCVS(Sallen-Key)、状态变量及回转器模拟电感等方案各有适用场景:RC电路简单但Q值受限,Sallen-Key单运放即可实现高Q,状态变量适合Q值独

weixin_32770423的博客 95

2019年10月中国编程语言排行榜

2019年10月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.54% 2 cpp 16.38% 3 c_sharp 12.79% 4 javascript 12.59% 5 python 7.68% 6 go 7.25% 7 p...

juwikuang的专栏 2万+

斯坦福大学CS224d基础1:线性代数知识

本文为斯坦福CS229的内容,也是CS224d课程的背景数学知识。概括了在机器学习和深度学习中用到的大部分线性代数知识。为了便于大家查漏补缺,这里根据英文版本整理了一个中文版本。

龙心尘 2万+

沪电股份2025年4月23日—10月23日)

沪电股份(002463)投资分析报告摘要: 投资建议:买入(85%置信度) 目标价:92元 当前价:69.95元(PE 11.4x) 核心逻辑: 基本面优异:高端PCB龙头,毛利率35.1%、净利率19.8%,ROE 13.4%,财务健康(负债率47.7%) 估值优势:PE 11.4倍显著低于行业均值,PEG仅0.76 技术面:半年涨幅149%,短期超买但趋势强劲,支撑位65元 催化剂:5G/汽车电子高景气,海外机构持续调研 风险提示:短期涨幅过大可能回调,建议65元以下分批建仓,止损60元 (150字)

wudonglianga的专栏 4966

07- Rossmann商店销售预测 (Xgboost集成算法) (项目七)

Rossmann在欧洲国家经营着3000多家日化用品超市。目前,Rossmann商店经理的任务是提前6周预测他们的日销售额。商店的销售受到许多因素的影响,包括促销、竞争、学校和国家假日、季节性和地域性。由于数以千计的管理者根据自己的特殊情况预测销售,结果的准确性可能会有很大的差异。 因此使用机器学习算法对销量进行预测,Rossmann要求预测德国1115家商店的6周日销售额。可靠的销售预测使商店经理能够制定有效的员工时间表,提高生产力和积极性。

March_A的博客 2460

CoppeliaSim学习笔记(1):建立Python脚本与CoppeliaSim的连接

CoppeliaSim学习笔记,建立python和CoppeliaSim的连接,实现联调。

qq_22487889的博客 1万+

steam游戏在线人数统计周报第1期-2019年10月11日

steam游戏在线人数统计周报第1期-2019年10月11日top10热门增长游戏top10周平均在线人数游戏top10本周新游戏top10玩家流失最大游戏 每周一凌晨统计上一周的数据,也就是上周的数据相较于上上周的数据的比较得出的在线人数增长最大的游戏前十名供大家参考 统计时间范围:2019年09月30日-2019年10月07日 top10热门增长游戏 统计出相较于上周游戏在线人数,本周游戏在线...

zsy的死忠粉 1170

PLSQL Developer安装详细步骤

一、下载安装PLSQL Developer(plsql安装百度也有步骤) 官网下载地址:https://www.allroundautomations.com/registered-plsqldev/ 1、网上自己下载适合自己电脑的安装包(32或64),并解压。 2、打开解压的文件夹,得到以下三个文件(分别是汉化工具,PLSQL安装包、激活码),双击安装,如下图: 3、安装界面,点击next,进入下一步,如图: 4、安装协议界面,此处必须选择“I accept the terms in

Gorden的博客 11万+

黑苹果社区2019年10月1日限时免费注册

2019年10月1日我们伟大的祖国即将迎来70岁生日!!!黑苹果社区https://osx.cx也将迎来4岁生日。 2019年10月1日零点零分将开启限时免费注册,为了防止恶意注册和黑客攻击,象征意义的收取1元,网址:https://osx.cx/pay.html ...

osxcx的博客 5356

用 SAP XCO XLSX 模块优雅读 Excel:坐标、选择模式与实战案例全解析

SAP ABAP Cloud 中的 XCO XLSX 模块为 Excel 文件处理提供了官方解决方案。文章介绍了三个核心概念:通过 XCO_CP_XLSX=>DOCUMENT 获取文档句柄;使用 CL_XCO_XLSX_COORDINATE 坐标系统定位单元格;利用 Selection Pattern 精确读取数据区域。这些功能在 RAP 批量导入等业务场景中尤为实用,相比传统方案更加简洁可靠。文章还分享了真实项目中的最佳实践,如动态列定位和相对偏移技巧,帮助开发者构建更健壮的 Excel 导入逻辑。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 189

【部署】OpenClaw版本降级实操(含全量卸载)

本文详细介绍了OpenClaw工具的降级与卸载方法。主要内容包括:1)通过npm安装指定版本的核心命令及国内镜像加速方案;2)两种卸载路径:CLI工具存在时的简易一键卸载(含交互式与非交互式命令)和手动分步卸载流程;3)CLI已删除但服务仍在运行时,针对macOS(launchd)、Linux(systemd)和Windows(计划任务)系统的具体清理步骤。文章特别强调了卸载前备份的重要性,并提供了不同安装方式(常规安装与源码克隆)的额外说明,确保用户能彻底清理所有组件。

海兰 3169

2025年10月18日~10月25日AI领域大事记

【摘要】2025年10月19日至25日,全球AI领域迎来爆发性的一周。国际上,OpenAI发布AI浏览器ChatGPT Atlas,意图重塑网络入口,苹果则通过M5芯片强化终端AI算力。国内,以IROS 2025、CNCC 2025为代表的顶级会议密集召开,同时蚂蚁集团、科大讯飞、阿里巴巴等巨头在10月19日集中发布多款大模型,展现了中国在基础模型和行业应用上的强劲势头。本周动态凸显了AI技术从云端向终端渗透、从通用向垂直行业深化,以及AI智能体成为下一阶段竞争焦点的核心趋势。

欢迎来到运通链达的官方博客!我们深度探讨人工智能技术与应用,贯彻科技向善理念,推动科技进步与社会福祉和谐共生。 2049

Cadence 开发合集【总目录】

专栏主要介绍Cadence原理图和PCB信号完整性电源完整性仿真相关的内容,更加注重实操,以帮助大家轻松上手并不断提高;在开始专栏的更新前,博主先列出专栏的大纲,以供大家参考。大家直接点击大纲中的蓝色标题即可轻松传送。 ............

fydar的博客 1万+

2019年10月13日(周日)上午7:30起跑,2019郑州国际马拉松赛,比赛须知

2019郑州国际马拉松赛,于2019.10.13周日在郑州举行。 一、赛事基本信息 (一)比赛日期与时间:2019年10月13日上午7:30 (二)比赛项目:马拉松(42.195公里) 半程马拉松(21.0975公里) 健康跑(约5公里) ...

一火的专栏 1160

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python--元类

一、元类介绍 二、class 关键字创建类的流程分析 三、自定义元类 四、__new__方法 五、__call__方法 六、总结类的调用与类产生对象的步骤分析

weixin_43988680的博客 6395

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2019年10月编程语言排行榜

TIOBE在前段时间公布了编程语言排行榜2019年10月的数据,编程语言10月的排名有了新的变化,Python继教占领第三名,Java还是稳居第一,C++本月又降了1.36%。下面一起来看看2019年10月编程语言排行榜。 2019年10月编程语言排行榜看点:   TIOBE编程语言排行榜10月的标题比较有趣 ——“Top 8 of the TIOBE index quite stable f...

abraham的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

1582年10月5日是个很奇怪的日子

import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Test1582 { public static void main(String[] args){ SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy EEE"); Calendar c = Calendar.get

sunxing007的专栏 1万+

ae2018怎么打开2019_提醒 | 2019年10月自考准考证打印开始啦

再过两天就要迎来10月的自考不知道大家复习的怎么样了在考试之前还有一个很重要的事大家千万不要忘记了那就是—打印准考证2019年10月广东高等教育自学考试考试时间安排在:2019年10月19日-20日上午考试时间为9:00—11:30下午考试时间为14:30—17:00准考证打印流程打印网址:考生打开广东省自学考试管理系统(http://www.stegd.edu.cn/selfec/),点击【考生...

weixin_30427953的博客 195

五天四晚自驾游攻略(2025年10月2-6日终极版)

这份攻略整合了您的原行程、我的前期建议及最新补充方案(包括B计划、应急措施、检查清单),并根据您的要求调整为五天四晚:原Day 4(10月5日)改为从朱家尖下午出发前往嘉兴,游玩部分景点并住一晚;新增Day 5(10月6日)上午逛嘉兴景点后返回南京。这样可避开国庆返程高峰(10月5日下午2-6时最堵),让旅途更从容。

qq_45371893的博客 2984

2025年10月25日 AI大事件

2025年10月25日,人工智能领域在伦理、基础设施与应用层面迎来关键进展。全球超3000名学者联署呼吁暂停超级智能研发,凸显了业界对AI安全的高度关切。为支持AI发展,美国宣布将数据中心接入电网的审批流程大幅简化至60天内,以应对激增的电力需求。同时,具身智能加速普及,智元机器人推出了零代码创作平台“灵创”,松延动力则发布了全球首款万元内人形机器人“小布米”。在应用层面,腾讯AI智能工作台ima月活增长突破80倍,显示出AI工具已深度融入各行各业。

聚梦小课堂 1661

【股市Café】2024年10月4日周末点评

星期五这一整天的指数走得还是不错,都出现了一个比较大的上涨。道琼斯指数上涨0.81%,纳斯达克上涨1.22%,标普500上涨0.9%。下跌的是3,868家,上涨的有7,629家。

weixin_43727045的博客 482

python——元类、元类实现orm

元类 1. 类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立: >>> class ObjectCreator(object): … pass … >>> my_object = ObjectCreator() >>> print(my_object) <__main_...

GC 6793

2024年10月4日历史上的今天大事件早读

1947年10月4日 量子力学的创始人马克斯-普朗克逝世。2016年10月4日 2016年度诺贝尔物理学奖揭晓。1986年10月4日 中国男排首次获得亚运会冠军。1980年10月4日 中国著名农学家陈凤桐逝世。763年10月4日 中国唐朝僧人鉴真和尚圆寂。1979年10月4日 中国第一家信托机构成立。1909年10月4日 清末大吏张之洞去世。1949年10月4日 我国与保加利亚建交。1991年10月4日 南极环保议定书通过。1824年10月4日 墨西哥成立共和国。1947年10月4日 人类首次突破音速。

微语早读 520

每日新闻掌握【2024年10月16日 星期三】

以低空产业生态构建为导向,支持空域资源较好、应用场景丰富的优势地区先行先试,因地制宜地打造低空多场景的应用示范体系,加快培育低空物流、城市和城际空中交通、低空文旅等低空消费新业态,拓展农林植保、巡视巡检、应急救援等新模式,打造经济增长的新引擎。马斯克在回应网友时说,在火星上建造一座可以自行发展的城市可能需要至少100万吨的设备,以现有的技术需要1000万亿美元,这显然是不可能的,而如果将火箭技术改进1000倍,那么成为可持续的多行星生命的成本将下降到1万亿美元左右。

1582

Python 元类

元类是“类的类”,它用于定义类的行为。换句话说,元类是创建类的模板。在 Python 中,类本身也是对象。元类用于控制类的创建过程,比如类的属性、方法、继承关系等。

weixin_67459449的博客 1472
上一篇: 2019年10月2日 property补充
weixin_30872867
博客等级 码龄11年 104粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值