我想在本文中分享我对该主题的见解。作者希望它可以帮助解决这个问题,因为很多人说这是一个很令人头疼的难题。 什么是元编程? 用一句话来说:“元编程是一种编写代码去操纵代码的行为。”...在python中,元编程可以表述为:“元编程是一种构建函数和类的行为,可以通过修改、包装现有代码或生成代码来操作代码。” 泛泛来说,只要是与编程相关的编程就算是元编程了。...当然,修饰器还有其他更多功能,但这只是 Python 中修饰器的简要介绍。 元类 现在我们已经了解了修饰器,他们的功能是修饰函数。但是元编程比修饰器更重要,例如元类。...元类是类的特殊类型,而不是 Python 中的普通类。在普通类定义其自身实例的行为时,元类定义了普通类及其实例的行为。 元类可以向普通类添加或删去方法或字段。...python 中有一个特殊的类,叫类型类,默认情况下它是一个元类。所有自定义类型类都必须从类型类继承。
并不是凑热闹这么简单 从技术研究者角度来看,元宇宙这个词本身就是为了进一步促进物质生活各个方面的数字化转型而创造的。...我们的设想是它是一个飘动着的建筑,建筑的底座在水边的小山丘,建筑漂浮在空中,并且这个建筑是可以生长的,水是它的一种生长的能量。...当马岩松构思metaZiWU的时候,表达出了他构想中,元宇宙应该有,却当下依然稀缺的东西:新属性、新生命和新表达。 我理解的元宇宙应该是一个文化聚集场所,它应该有多种的空间和元素在这里发生。...同时,陆明龙也表示,元宇宙为艺术带来了超越现实的便利: “我享受这些虚拟空间提供的⾃由,因为它们不受创建真实建筑时涉及的财务或社会考量的限制。”...当元宇宙成为数字理想国 马岩松认为,元宇宙的意义,便是在无限的想象空间中体验过去与未来: 这个虚拟世界的前提必然是一个理想国,充满了那些奇思妙想,在现实中所不能达到的东西。
我可以定义一个实体类,想返回多少个字段就返回多少个字段,还有的小伙伴就说了,我可以利用集合不管是 List 还是 Map 都可以实现,如下所示: public static void main(String...写到这里有的小伙伴就要问了,那我要想返回一个三元组怎么办呢?Python 和 GO 我直接加一个返回值就行了,在 Java 这里不行了吧。...确实JDK 本身并没有提供三元组的实现,如果真的需要我们可以使用 Pair 自己来构造一个三元组,不过这个世界上总有一些好事之者已经帮我们做好了。...Javatuples 是一个第三方的 Java 元组库,这个库目前实现了最多十个元组,如果要实现常用的三元组或者四元组可以使用这个组件,不过更多元组的使用场景并不多,而且也不是很灵活,还是乖乖自定义实体吧...>javatuples 1.2 其中各个数量的元组类名称如下,不得不说十元组的数量已经不算少了
这个题是我遇到的一个真实的面试题,当时并没有回答的很好。然后通过上面的文章,我在源码中寻找到了答案。 先给大家看两个案例。 sayHi 方法是会抛出运行时异常的。...; } } 这个程序的输出结果是这样的: ? 我寻思这没毛病呀,这不是很正常吗?不就是应该这样输出吗?...这个 Future 是一个接口: ? 而这个接口有非常多的实现类。我们找哪个实现类呢?...就是下面这个实现类: java.util.concurrent.FutureTask 至于是怎么找到它的,你慢慢往后看就知道了。 先看看 FutureTask 的 get 方法: ?...寻找答案-线程池 先回答上一节的一个问题:我怎么知道是看 Future 这个接口的 FutureTask 这个实现类的: ?
函数 描述 c.assign(beg,end) c.assign(n,elem) 将[beg; end)区间中的数据赋值给c。 将n个elem的拷贝赋值给c。...c.at(idx) 传回索引idx所指的数据,如果idx越界,抛出out_of_range。 c.back() 传回最后一个数据,不检查这个数据是否存在。...c.erase(pos) c.erase(beg,end) 删除pos位置的数据,传回下一个数据的位置。 删除[beg,end)区间的数据,传回下一个数据的位置。...c.rbegin() 传回一个逆向队列的第一个数据。 c.rend() 传回一个逆向队列的最后一个数据的下一个位置。 c.resize(num) 重新指定队列的长度。...c.size() 返回容器中实际数据的个数。 C1.swap(c2) Swap(c1,c2) 将c1和c2元素互换。 同上操作。
如果您在尝试运行Python代码时收到过SyntaxError错误,那么本指南可以帮助您。在本教程中,您将看到Python中常见的无效语法示例,并学习如何解决这个问题。...在上面的例子中,根据后面的内容,省略逗号是没有问题的。例如,第5行“michael”后面缺少逗号是没有问题的。但是一旦解释器遇到不理解的东西,它只能指出它发现的第一件不理解的事情。...它们等价于SyntaxError,但有不同的名称: IndentationError TabError 这些异常都继承自SyntaxError类,但它们是涉及缩进的特殊情况。...另一个关于关键字的常见问题是你完全忽略了它们: >>> >>> for i range(10): File "", line 1 for i range(10):...下一次出现SyntaxError时,您就可以更好地快速修复这个问题了!
在用户定义的基类中,当抽象方法需要派生类覆盖该方法时,抽象方法应引发此异常。 异常OSError 这个异常来源于EnvironmentError。...异常IndentationError 与错误缩进相关的语法错误的基类。这是一个子类SyntaxError。 异常TabError 缩进时引发的标签和空格不一致。...异常UserWarning 用户代码生成的警告的基类。 异常DeprecationWarning 关于已弃用功能的警告的基类。...异常PendingDeprecationWarning 关于将来不推荐使用的功能的警告的基类。 异常SyntaxWarning 关于可疑语法的警告的基类。...异常RuntimeWarning 关于可疑运行时行为的警告的基类。 异常FutureWarning 关于将来会在语义上改变的构造的警告的基类。
常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所有的内建标准异常的基类...导入模块/对象失败 LookupError 无效数据查询的基类 IndexError 序列中没有此索引(index) KeyError 映射中没有这个键 MemoryError...Unicode 编码时错误 UnicodeTranslateError Unicode 转换时错误 Warning 警告的基类 DeprecationWarning 关于被弃用的特征的警告...FutureWarning 关于构造将来语义会有改变的警告 OverflowWarning 旧的关于自动提升为长整型(long)的警告 PendingDeprecationWarning...(): print('输入的是空格,就执行我这里的逻辑') elif len(num1) == 0: print('输入的是空,就执行我这里的逻辑') else: print('
,却试图访问x[5] KeyError 试图访问字典里不存在的键 KeyboardInterrupt Ctrl+C被按下 NameError 尝试访问一个没有申明的变量 SyntaxError Python...映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象 (没有属性) UnboundLocalError...警告的基类 DeprecationWarning 关于被弃用的特征的警告 FutureWarning 关于构造将来语义会有改变的警告 OverflowWarning 旧的关于自动提升为长整型...,执行相应不同的操作 3.主动抛出异常 异常的抛出可以手动添加 try: raise Exception("我自己抛的") except Exception as e: print(e)...#这里会输出“我自己抛的” 4.自定义异常类型 异常的类型我们可以自己定义自己所需要的 主要利用类中的__str__方法实现 class myException(BaseException):
我们编写程序通常使用开发工具编写,比如:我使用 Pycharm 工具编写 Python 程序,像这种语法错误,在编写程序时,编译器就会检测出来并提示我们,因此,我们编写好的程序几乎不会出现这种问题。...断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败...尚未实现的方法 SyntaxError Python 语法错误 IndentationError 缩进错误 TabError Tab 和空格混用 SystemError 一般的解释器系统错误 TypeError...Unicode 编码时错误 UnicodeTranslateError Unicode 转换时错误 Warning 警告的基类 DeprecationWarning 关于被弃用的特征的警告 FutureWarning...关于构造将来语义会有改变的警告 OverflowWarning 旧的关于自动提升为长整型(long)的警告 PendingDeprecationWarning 关于特性将会被废弃的警告 RuntimeWarning
SystemError 我目前只见过这四个,以后会慢慢总结的(非要立个flag你快乐吗) python所有的标准异常类: 异常名称 描述 BaseException 所有异常的基类 SystemExit...(generator)发生异常来通知退出 SystemExit Python 解释器请求退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类...尚未实现的方法 SyntaxError Python 语法错误 IndentationError 缩进错误 TabError Tab 和空格混用 SystemError 一般的解释器系统错误 TypeError...Unicode 编码时错误 UnicodeTranslateError Unicode 转换时错误 Warning 警告的基类 DeprecationWarning 关于被弃用的特征的警告 FutureWarning...关于构造将来语义会有改变的警告 OverflowWarning 旧的关于自动提升为长整型(long)的警告 PendingDeprecationWarning 关于特性将会被废弃的警告 RuntimeWarning
最刺激我认知的莫非昨天的《99%的人都理解错了HTTP中GET与POST的区别》。...: 100-continue”头(rfc2616),服务端才会给这个多出来的响应,随便抓抓包都知道很多post请求都是一次发送完成的;2.http是应用层协议,管不了tcp层发几个包,试想你要post一兆字节的数据比如一张图片...registry上面的模块通常采用CommonJS格式,而且都包含一个JSON格式的元文件[5]。截止到2016年7月,npm的registry上面已经注册了超过280,000个模块[6]。...简单直白点讲就是功能类同yum, apt, pip的包管理器 还不理解的话…那咳咳…就放弃吧…哈哈 安装npm & nodejs 思路第一步:安装 运维人老的思维方式,yum yum install...,不管开发类工具的呀..太偏心了.哈哈。
网上关于设计模式的文章很多,为什么我还要重复写设计模式的文章,在看到LZ大牛的一篇《聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路》博文后,发现自己陷入了思维误区,在之前看的一本《Java EE...设计模式解析与指南》本中,提出一个反设计模式的思维,于是自己便成了这个思维的拥护者(还是懒) 闲暇时间开始进入设计模式思考,重点是不理解设计模式的套路真的看源码很痛苦,个人感觉设计模式小白慎入,大学时期买了一本...创建型: 单例模式 简单工厂模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型: 代理模式 适配器模式 装饰器模式 桥接模式 组合模式 享元模式 外观模式...观察者模式 模板方法模式 命令模式 状态模式 职责链模式 解释器模式 中介者模式 访问者模式 策略模式 备忘录模式 迭代器模式 《六大原则》 单一职责原则(每个类都只负责单一的功能...,不可太多,并且一个类应当尽量的把一个功能做到极致):简单理解=>一个类只做一件事 里氏替换原则(子类可以扩展父类的功能,但不能改变父类原有的功能):简单理解=>儿子可以替代父亲 接口隔离原则(也称接口最小化原则
專 欄 ❈松直,Python中文社区专栏作者,计算机在读,Python拥趸,知乎专栏:从Python开始❈ 很多人不理解“元编程”是个什么东西,关于它也没有一个十分准确的定义。...这篇文章要说的是Python里的元编程,实际上也不一定就真的符合“元编程”的定义。只不过我无法找到一个更准确的名字来代表这篇文章的主题,所以就借了这么一个名号。...稍有基础的读者就会知道还有元类这个东西的存在,简言之,元类就是“类”的“类”,也就是比类更高层次的东西。这又有了一个层次。还有吗?...我们在类中定义的方法都是实例对象的行为,那么要想改变类的行为,就需要更高层次的东西。元类在这个时候登场在合适不过了。前面说过,元类是类的类。也就是说,元类的init方法就是类的初始化方法。...我们知道还有call这个东西,它能让实例像函数那样被调用,那么元类的这个方法就是类在被实例化时调用的方法。 代码就可以写出来了: ?
很多人不理解“元编程”是个什么东西,关于它也没有一个十分准确的定义。这篇文章要说的是Python里的元编程,实际上也不一定就真的符合“元编程”的定义。...稍有基础的读者就会知道还有元类这个东西的存在,简言之,元类就是“类”的“类”,也就是比类更高层次的东西。这又有了一个层次。还有吗?...我们在类中定义的方法都是实例对象的行为,那么要想改变类的行为,就需要更高层次的东西。元类在这个时候登场在合适不过了。前面说过,元类是类的类。也就是说,元类的init方法就是类的初始化方法。...我们知道还有call这个东西,它能让实例像函数那样被调用,那么元类的这个方法就是类在被实例化时调用的方法。 代码就可以写出来了: ?...控制子类的创建——代替元类的方法 在Python3.6中,我们可以通过实现init_subclass特殊方法,来自定义子类的创建,这样我们就可以在某些情况下摆脱元类这个讨厌的东西。 ?
大家好,又见面了,我是你们的朋友全栈君。...File "", line 1 y = (x = x + 1) ^ SyntaxError: invalid syntax >>> if (a = 3): SyntaxError: invalid...一般来讲_xxx被看做私有的,在模块或类外不可使用,所以当变量是私有时,用_xxx是很好的习惯。...因为__xxx__有特殊含义,所以普通变量命名应避免这种风格 关于变量的赋值部分 Python的变量的赋值都是引用。这设计到它的内存管理机制。Python使用了引用计数这一简单技术。...当对象被创建并赋值给变量时,该对象的引用计数就被设置为 1 当同一个对象又被赋值给其它变量时,或者作为参数传递给函数,方法或类实例时,或者被赋值为一个窗口对象的成员时,该对象的一个新的引用或者称别名,
大家好,又见面了,我是你们的朋友全栈君。...File "", line 1 y = (x = x + 1) ^ SyntaxError: invalid syntax >>> if (a = 3): SyntaxError: invalid...一般来讲_xxx被看做私有的,在模块或类外不可使用,所以当变量是私有时,用_xxx是很好的习惯。...因为__xxx__有特殊含义,所以普通变量命名应避免这种风格 关于变量的赋值部分 Python的变量的赋值都是引用。这设计到它的内存管理机制。Python使用了引用计数这一简单技术。...当对象被创建并赋值给变量时,该对象的引用计数就被设置为 1 当同一个对象又被赋值给其它变量时,或者作为参数传递给函数,方法或类实例时,或者被赋值为一个窗口对象的成员时,该对象的一个新的引用或者称别名,就被创建
学习js的过程中我们绕不开两链一包的学习,尤其是在面试中,关于作用域链,前些时间分析过了,有兴趣的话可以关注一下关于JS中的作用域中的沉思,这篇文章主要是关注原型链性质特点 所谓原型 常言道他山之石可以攻玉...,原型的概念在其他的语言中可能不存在,但相似的原理是存在的,比如python中的基类的老爹——元类 MyClass = MetaClass() # 使用元类创建出一个对象,这个对象称为“类” my_object...= MyClass() # 使用“类”来创建出实例对象 之前学习他的时候,Tim Peters这老头这么说到,“元类就是深度的魔法,99%的用户应该根本不必为此操心。...如果你想搞清楚究竟是否需要用到元类,那么你就不需要它。那些实际用到元类的人都非常清楚地知道他们需要做什么,而且根本不需要解释为什么要用元类。”...哦,对于python来说元类是需要用到时候一定是已经理解了,用不到的时候说明是不理解,唔,我愿称之为薛定谔の学习,但不影响我们互相印证学习。
以下文章来源于种个模型树 ,作者付出 上篇文章,我提到了无效学习的第一个特点:操作多,用脑少 这次我来说第二点:没有明确目标 第二点,没有明确目标 关于这个问题,我在之前的复盘反思「需求导向」有提到过...当时,就体会到这种无效学习带来的困扰。 事件描述: 我在看《追寻记忆的痕迹》一书, 目标:我看书,是想练习我的“结构思考”能力。 看看这上面的知识,能否优化我的“学习树”系统。...注意:这是一个目标,但目标不够明确,没有对准书中的内容 然而,我看书不带“筛选”, 原来的系统里,放进去了,心理结构“自我,本我,超我”,然后是三大假说“神经元,离子,突触传递理论”,后面还有神经元的结构相关知识...可问题是,这类知识又很抽象,有些内容还不理解。 放进去意义是什么? 后来,宗点老师提醒我, 看书前,先要有一个“问题”,再要假设一个结果。 没有问题导向地看书,知识很快会失去用武之地。...我想了想,确实,不带问题看书,会浪费很多时间在“无意义”的知识上面。 有没有其他情况呢?比如学教科书,就是学的知识点。 解决了什么问题? 解决考试的问题,考试考什么样的题,就学什么内容。
(缩进错误)等,你或许有许多疑问,为什么程序出现这个错误就会打印出相应的错误信息,自己是否可以编写一个错误呢?...4 print('我是NameError') 5 print(e) # 将这个异常打印出来 6 7 8 # 运行结果: 9 我是NameError 10 name...Unicode 转换时错误 DeprecationWarning 关于被弃用的特征的警告 FutureWarning 关于构造将来语义会有改变的警告...OverflowWarning 旧的关于自动提升为长整型(long)的警告 PendingDeprecationWarning 关于特性将会被废弃的警告 RuntimeWarning...BaseException,常见的异常的基类是Exception,那么自己如果想要自定义异常的话,也要以BaseException或者Exception为基类(关于类的讲解以后会介绍到,这里先看一看)
领取专属 10元无门槛券
手把手带您无忧上云