首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

复习python第五天

函数的使用: 例如你要有一个取绝对值的函数,就有内置函数abs()给你调用 ? 当然你也可以用自己设计的函数去取绝对值,只有声明一个函数,并函数里面的逻辑弄对了,便可以直接调用了。...globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。 返回值 返回表达式计算结果。...自定义函数: 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。 任何传入参数和自变量必须放在圆括号中间。...lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。 lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。...访问权限决定于这个变量是在哪里赋值的。 变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下: 全局变量 局部变量 ?

39830

作为一名合格的开发者,必须了解的编程原则有哪些?

对系统中任意单个元素的修改不需要改变其他逻辑上无关的元素。 此外,相关逻辑的元素的变化都是可预测的和均匀的,因此是保持同步的。...为维护者写代码 为什么 到目前为止,维护是任何项目中最昂贵的阶段。 怎么做 _成为_维护者。 不论何时编写代码,要想着最后维护代码的人是一个知道自己住在哪里的暴力精神病人。...怎么做 消除,最小化和降低必要关联的复杂性。 通过隐藏实现细节,减少耦合。 使用迪米特法则。 迪米特法则 不要和陌生人说话。 为什么 这通常会导致更紧密的耦合。 可能会暴露过多的实现细节。...怎么做 对象的方法只能调用以下方法: 对象自身的方法。 方法参数中的方法。 方法中创建的任何对象的方法。 对象的任何直接属性或字段的方法。 组合优于继承 为什么 类之间的耦合减少。...它是一种设计原则,计算机程序的自定义编写部分从通用框架接收控制流。控制反转具有强烈的含义,即可重用代码和特定于问题的代码是独立开发的,即使它们在应用程序中一同工作。

57400
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Flutter TolyUI 框架#07 | 案例解析与管理

    注解与信息维护 巧妇难为无米之炊 ,现在最重要的问题是:在哪里,如何向案例提供描述信息? 由于 Dart 即将支持宏编程,所以我决定采用 注解 的方式来维护某个案例的介绍数据。...二、案例文件的解析逻辑 NodeMeta 是解析过程中承载数据的核心对象,每个案例文件将解析成一个 NodeMeta 对象。...遍历解析与收集 NodeMeta 结果 所有的案例代码都放在了项目中的 widgets 文件夹下,接下来需要遍历文件夹,来逐一解析内容。...另外,这里将每个组件对应的案例列表数据拆散成 独立文件。通过 part 和 part of 关键字建立文件间的关系。将独立文件在逻辑上视为 node.g.dart 的一部分。...这样就完成了用代码写代码的目的:通过 FileGen类来维护代码生成的逻辑,其中依赖解析后的数据对象 displayMap,通过构造函数传入: class FileGen { final Map<String

    17410

    如何选出适合自己的管理Helm Chart的最佳方式?

    在Helm的使用过程中,我们注意到有几个问题不断出现: 你将你的Helm chart放在哪里? 你是使用app文件保存它们还是使用chart仓库? 你如何划分Helm chart?...而当你将每个chart与服务代码保存在同一仓库中时,使用特定于服务的chart则会更好。 如果你在服务仓库中存储Helm chart,那么可以更轻松地独立于其他项目持续部署服务。...并且你可以将chart更新(例如添加新变量)与应用程序逻辑的更改一起提交,使其更易于识别和还原重大更改。 然而,本选项的优势取决于你所维护的微服务的数量。...我们的工作对象是很少有依赖项的服务。对于每个服务,Helm chart只部署一个带有特定Docker标签的主容器。chart的名称和docker标签是通过变量传递进来的。...一旦他们想了解Helm,大多数应用开发者会把他们的chart放在最容易处理的地方——也就是他们维护的同一个repo。

    1.2K10

    程序员能力提升:你应该知道的那些编程原则!!

    这篇概述用于我个人参考,同时我也把它放在这。也许这在设计、讨论或复查中对你有所帮助。但请注意,这还远远不够,你常常需要在相互矛盾的原则之间做出权衡。...为什么 重复(无意或有意的重复)会造成噩梦般的维护,保养不良和逻辑矛盾。 对系统中任意单个元素的修改不需要改变其他逻辑上无关的元素。...CouplingAndCohesion) 迪米特法则 不要和陌生人说话。 为什么 这通常会导致更紧密的耦合。 可能会暴露过多的实现细节。 怎么做 对象的方法只能调用以下方法: 对象自身的方法。...方法参数中的方法。 方法中创建的任何对象的方法。 对象的任何直接属性或字段的方法。...它是一种设计原则,计算机程序的自定义编写部分从通用框架接收控制流。控制反转具有强烈的含义,即可重用代码和特定于问题的代码是独立开发的,即使它们在应用程序中一同工作。

    32811

    超级干货:你应该知道的那些编程原则!!

    这篇概述用于我个人参考,同时我也把它放在这。也许这在设计、讨论或复查中对你有所帮助。但请注意,这还远远不够,你常常需要在相互矛盾的原则之间做出权衡。...为什么 重复(无意或有意的重复)会造成噩梦般的维护,保养不良和逻辑矛盾。 对系统中任意单个元素的修改不需要改变其他逻辑上无关的元素。...CouplingAndCohesion) 迪米特法则 不要和陌生人说话。 为什么 这通常会导致更紧密的耦合。 可能会暴露过多的实现细节。 怎么做 对象的方法只能调用以下方法: 对象自身的方法。...方法参数中的方法。 方法中创建的任何对象的方法。 对象的任何直接属性或字段的方法。...它是一种设计原则,计算机程序的自定义编写部分从通用框架接收控制流。控制反转具有强烈的含义,即可重用代码和特定于问题的代码是独立开发的,即使它们在应用程序中一同工作。

    22210

    你将你的Helm chart放在哪里?

    在Helm的使用过程中,我们注意到有几个问题不断出现: 你将你的Helm chart放在哪里? 你是使用app文件保存它们还是使用chart仓库? 你如何划分Helm chart?...而当你将每个chart与服务代码保存在同一仓库中时,使用特定于服务的chart则会更好。 如果你在服务仓库中存储Helm chart,那么可以更轻松地独立于其他项目持续部署服务。...并且你可以将chart更新(例如添加新变量)与应用程序逻辑的更改一起提交,使其更易于识别和还原重大更改。 然而,本选项的优势取决于你所维护的微服务的数量。...我们的工作对象是很少有依赖项的服务。对于每个服务,Helm chart只部署一个带有特定Docker标签的主容器。chart的名称和docker标签是通过变量传递进来的。...一旦他们想了解Helm,大多数应用开发者会把他们的chart放在最容易处理的地方——也就是他们维护的同一个repo。

    2.5K40

    状态模式(State)

    随着时间推移,最初仅包含有限条件语句的简洁状态机可能会变成臃肿的一团乱麻。 解决方案 将本来是针对对象的操作,委托给了这个对象的状态操作。...运用状态模式可以将代码中的if,else代码块抽离出来,每个if,else下的代码块都封装为状态的某一个方法,所有状态都必须实现状态接口,即实现抽离出来的所有方法,由各自去执行在该状态下应该实现的逻辑,...原始对象被称为上下文(context),它并不会自行实现所有行为,而是会保存一个指向表示当前状态的状态对象的引用,且将所有与状态相关的工作委派给该对象。...具体状态(Concrete States)会自行实现特定于状态的方法。为了避免多个状态中包含相似代码,你可以提供一个封装有部分通用行为的中间抽象类。 状态对象可存储对于上下文对象的反向引用。...虽然你可能会需要完全复制上下文中声明的所有方法, 但最好是仅把关注点放在那些可能包含特定于状态的行为的方法上。 为每个实际状态创建一个继承于状态接口的类。

    44420

    少到4个示例,击败所有少样本学习:DeepMind新型800亿模型真学会了

    Flamingo 还能通过并识别出著名的斯特鲁普效应 (Stroop effect),例如事先给几个示例,如出题人给出表示绿色的单词 GREEN,并用蓝色的字体表示,回答者需要回答:颜色是绿色,用蓝色书写...下图给出了两个动物图片示例和一个标识它们名称的文本以及关于在哪里可以找到的描述,Flamingo 可以模仿这种风格,给定一个新图像以输出相关描述:例如,在给出栗鼠、柴犬示例后,Flamingo 模仿这种方式...研究概述 模型架构 & 方法 在实践中,通过在两者之间添加新颖的架构组件,Flamingo 将每个经过单独预训练和冻结的大型语言模型与强大的视觉表示融合在一起。...在 Flamingo 模型的主要训练阶段,他们将视觉编码器冻结,这是因为它与直接基于文本生成目标训练视觉模型相比表现得更好。...感知器重采样器模块将视觉编码器连接到冻结的语言模型(如上图 3 所示),并将来自视觉编码器的可变数量的图像或视频特征作为输入,产生固定数量的视觉输出,如下图 4 所示。

    1.5K30

    终止交易又反转,马斯克再次出价440亿美元收购推特

    根据周二的一份法庭文件显示,马斯克原定于 10 月 6 日至 7 日在德克萨斯州奥斯汀回答有关该交易的问题。...2022 年 4 月 14 日,马斯克提议以 430 亿美元的价格收购推特。而在这之前,马斯克便以 26.4 亿美元的价格收购了推特公司 9.1% 的股份。...宣布收购之初,马斯克表现出极大的热情,制定了对推特的未来计划,包括引入新功能、使算法开源、减少垃圾内容机器人以及对所有人进行身份验证,并提议将推特在旧金山的总部改为流浪者收容所等。...马斯克于 7 月终止并退出原计划以 440 亿美元收购推特的并购案,理由是推特违反了并购协议的多项条款;而推特方面,推特董事长 Bret Taylor 在推特上回应说,推特董事将通过法律行动,强制执行推特并购协议...推特与马斯克诉讼案原定于今年 10 月 17 日审判,目前看来他们应该坐在谈判桌上商谈收购事宜。

    41720

    Java设计模式的7种设计原则还有很多人不知道

    那么设计模式最重要的一个原则就是开闭原则。也就是说一个软件模型实体如类、模块和函数应该对扩展开放,对修改关闭。也就是需要我们将业务行为抽象出来,使用抽象来构建。具体的业务通过抽象的实现来解决。...那么我们就搞一个DiscountCar来extends Car.这样sellCar是什么具体的实现就执行什么具体的逻辑。不会影响以前的逻辑,而且不会因为改动原来的代码影响其他逻辑。...哪里不对呢?老板已经持有了报表,如果老板已经知道了你的业绩还叫你干什么?这种逻辑肯定是不对的!...比较正式的定义:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2 时,程序P的行为没有发生变化,那么类型 S 是类型 T 的子类型。...合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范。 欢迎大家关注我的公种浩【程序员追风】,文章都会在里面更新,整理的资料也会放在里面。

    35800

    腾讯万亿级 Elasticsearch 内存效率提升解密

    image.png 分析:成本瓶颈在哪里:堆内存使用率过高 image.png 我们对线上售卖的集群做硬件成本分析后,发现成本主要在磁盘和内存。...建立在堆内存中的对象有生命周期管理机制,由垃圾回收机时自动回收过期对象占用的内存。 堆外内存是由用户程序管理的内存,堆外内存中的对象过期时,需要由用户代码显示释放。1....但由于 Lucene 会为原始数据中的每个词都生成倒排索引,数据量较大。所以倒排索引对应的倒排表被存放在磁盘上。...将各个 Block 的公共前缀,按照类似前缀树的逻辑组合成 FST,其叶子节点携带对应 Block 的首地址 。...多级 Cache 将性能优化到极致 要进一步优化性能,需要搞清楚一个问题:7% 的性能损耗在哪里? Perf分析后发现,Hot 堆栈是 OffHeap Cache 计算Hash、校验 Key 等逻辑。

    1.6K10

    不可变模式篇:非常抓狂,这特么到底是哪里不对?

    大家好,我是冰河~~ “这特么到底是哪里出了问题,我感觉没啥问题啊,为什么我统计出来的数据就是和运维统计出来的数据对不上呢?为啥运维统计出来的结果是正确的呢?我觉得自己的代码没毛病啊?”...,鉴权拦截器主要是检测与鉴权相关的逻辑等等。...表面上看起来逻辑是没毛病的。 老王对小菜说:“这个类实现的有问题,这样实现根本就不能统计出正确的结果”。...“好的”,小菜回答到。 就这样,看起来一个很简单的问题,小菜前前后后花了一天的时间,也没搞定,心里确实有点郁闷:“明明是很简单的功能啊,这特么到底是哪里不对呢?”。 他又回到了座位上。。。...此时的小菜心里有点郁闷,明明很简单的功能,这特么到底是哪里不对? 好在明天到公司了,老王会给小菜讲清楚到底是哪里的问题(再次感叹:老王是真特么的好啊!)

    22220

    「领域驱动设计」DDD,六边形架构,洋葱架构,整洁架构,CQRS的整合架构

    虽然将CLI控制台与数据库引擎放在同一个“bucket”中可能感觉有些奇怪,尽管它们有不同类型的用途,但它们实际上是应用程序使用的工具。...这个层中的对象包含数据和操作数据的逻辑,这是特定于域本身的,它独立于触发逻辑的业务流程,它们是独立的,完全不知道应用层。...因此,我们的第一反应可能是将逻辑放在实体之外的应用程序服务中。然而,这意味着该域逻辑将不能在其他用例中重用:域逻辑应该远离应用程序层!...组件之间共享的数据存储 当一个组件需要使用属于另一个组件的数据时,假设一个账单组件需要使用属于accounts组件的客户端名称,账单组件将包含一个查询对象,该对象将查询该数据的数据存储。...查询对象将包含一个优化的查询,该查询将简单地返回一些原始数据以显示给用户。该数据将以DTO的形式返回,并注入到ViewModel中。这个视图模型可能有一些视图逻辑,它将被用来填充一个视图。

    2K30

    【设计模式】 面向对象六大设计原则

    面向对象设计的六大原则 : 单一职责原则, 里氏替换原则, 依赖倒置原则, 接口隔离原则, 迪米特法则, 开闭原则; 一. 单一职责原则 1....迪米特法则 1. 迪米特法则定义 迪米特法则 : 最少知识原则, 一个对象应该对其它对象有最少的了解, 即一个类对自己需要耦合或者调用的类知道的最少; 2....将很多方法暴露给 A, 两个类之间的的耦合关系非常牢固, 这明显违反设计原则; -- 保持距离方法 : 将 类 B 暴露给 A 的方法封装, 暴露的方法越少越好, 类 B 高内聚, 与 A 低耦合;..., 就放在本类中; 3....迪米特法则注意事项 迪米特法则核心原则 : 类间解耦, 弱耦合, 耦合降低, 复用率提高; -- 局限性 : 类间的耦合性太低, 会产生大量的中转或跳转类, 会导致系统的复杂性提高, 加大维护难度; 六

    83310

    按功能(特性)分包

    一些开发人员还希望将所有实体放在中心位置,以便能够整体查看数据库架构的映射。目前,我并不是教条,因为实体的两个位置都可以合理。...不过,一开始我总是尽可能多地将代码转移到功能包中,并依赖于定制的特定于用例的实体和投影。 ---- 大图景 最终,我们的大图看起来像这样: ? ?...例如,每个程序包都有自己的DAO和客户端。不应有庞大的DAO类神。 一个程序包应该与其他程序包只有几个关系。该功能所需的所有逻辑事物都应放在程序包内。...如果存在特定于特性的Spring Bean,我们将把它们的配置放在特性包中。 ---- 问题 功能包中的结构如何? 这取决于项目和功能包的大小。...但是Kotlin使其易于遵循: 使用数据类,编写量身定制的特定于功能的结构(如DTO或实体)仅需几行,而无需样板。 Kotlin允许将多个类放在一个文件中。

    1.1K21

    【Python】笔记第五部分:盒子的箱子,异常

    模块 Module 程序可以拆分成以.py结尾的模块,拆分相似的逻辑。 分开以后,把有关联的代码放在一起会更清晰,有利于合作开发。 不同文件之间的关联,将目标模块的成员导入到当前模块的作用域中。...# 你过来,面向过程比较多,因为用的是文件名。 import 模块 as 名称 # 主动过来,面向对象,直接可以拿来用。...源代码 --> 编译–> 字节码 – >解释 --> 机器码 编译之后得到pyc文件,也就是pychache文件,存储了字节码(特定于Python的表现形式)。...让一些相关的模块组织在一起,使逻辑结构更加清晰。...属性异常(AttributeError):对象没有对应名称的属性。 键异常(KeyError):没有对应名称的键。 异常基类Exception。

    71410
    领券