首页 文章 精选 留言 我的

精选列表

搜索[Python],共10000篇文章
优秀的个人博客,低调大师

python设计模式(十五):责任链模式

将多个处理方法连接成一条链条,请求将在这条链条上流动直到该链条中有一个节点可以处理该请求;通常这条链条是一个对象包含对另一个对象的引用而形成链条,每个节点有对请求的条件,当不满足条件将传递给下一个节点处理。 示例code: 创建三个不同的对象,每个对象只处理指定范围内的数字,不属于自己的就传递给下一个对象。 classBases: def__init__(self,obj=None): self.obj=obj defscreen(self,number): passclassA(Bases): defscreen(self,number): if200>number>100: print("{}划入A集合".format(number)) else: self.obj.screen(number)classB(Bases): defscreen(self,number): ifnumber>=200: print("{}划入B集合".format(number)) else: self.obj.screen(number)classC(Bases): defscreen(self,number): if100>=number: print("{}划入C集合".format(number))if__name__=='__main__': test=[10,100,150,200,300] c=C() b=B(c) a=A(b) foriintest: a.screen(i) -------------------10划入C集合100划入C集合150划入A集合200划入B集合300划入B集合 责任链模式有几个要点: 一个对象中含有另一个对象的引用以此类推形成链条 每个对象中应该有明确的责任划分即处理请求的条件 链条的最后一节应该设计成通用请求处理,以免出现漏洞 请求应该传入链条的头部

优秀的个人博客,低调大师

python设计模式(二):建造者模式

建造者,顾名思义是修建建筑的工人,按照基本的施工方式:打桩-浇筑框架-砌墙-装修,同样的施工流程却能造就千差万别的建筑,因为不同的材料、不同设计,可以表现出千差万别,这就是建造者模式的简要理解。 示例代码: #-*-coding:utf-8-*-classBuilder(): """建造流程:原料—施工""" def__init__(self): self.materiel=None self.design=None defrun(self): print('修建完工!设计建筑:%s|购买原料:%s'%(self.design,self.materiel))classA(Builder): """方案A,修建毛坯房""" defget_materiel(self): self.materiel="砖瓦" defget_design(self): self.design="毛坯房"classB(Builder): """方案B,修建写字楼""" defget_materiel(self): self.materiel="玻璃" defget_design(self): self.design="写字楼"classDirector: """调度:买原料-组织施工""" def__init__(self): self.programme=None defbuild(self): self.programme.get_materiel() print("购买原料:{}".format(self.programme.materiel)) self.programme.get_design() print("设计方案:{}".format(self.programme.design)) self.programme.run()if__name__=='__main__': #修建毛坯房 test=Director() test.programme=A() test.build() #修建写字楼 test=Director() test.programme=B() test.build() ---------------------------- 购买原料:砖瓦 设计方案:毛坯房 修建完工!设计建筑:毛坯房|购买原料:砖瓦 购买原料:玻璃 设计方案:写字楼 修建完工!设计建筑:写字楼|购买原料:玻璃 上面是一个很简单直白的例子,建造者模式应该有几个关键要素:相同的流程、不同的表示、修建者。也就是同一个对象(建筑)在同一修建者组织下,以相同的实例化流程(施工流程)来达到不同的表示效果(毛坯、写字楼) 这样的好处使得构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

优秀的个人博客,低调大师

python 数据类型 、运算符

基本的(字面量)值 类型 描述 语法示例 整型 无小数部分的数 42 长整型 大整数 42L 浮点型 有小数部分的数 42.5, 42.5e-2 复合型 实数(整数或浮点数)和虚数的和 38+4j, 42j 字符串 不可变的字符序列 "foo", 'bar', """baz""", r'n' Unicode 不可变的Unicode字符序列 u'foo', u"bar", u"""baz""" 运算符 运算符 描述 优先级 lambda lambda表达式 1 or 逻辑或 2 and 逻辑与 3 not 逻辑非 4 in 成员资格测试 5 not in 非成员资格测试 5 is 一致性测试 6 is not 非一致性测试 6 < 小于 7 > 大于 7 <= 小于或等于 7 >= 大于或等于 7 == 等于 7 != 不等于 7 \ 按位或 8 ^ 按位异或 9 & 按位与 10 << 左移 11 >> 右移 11 + 加法 12 - 减法 12 * 乘法 13 / 除法 13 % 求余 13 + 一元一致性 14 - 一元不一致性 14 ~ 按位补码 15 ** 幂 16 x.attribute 特性引用 17 x[index] 项目访问 18 x[index1:index2[:index3]] 切片 19 f(arg...) 函数调用 20 (...) 将表达式加圆括号或元组显示 21 [...] 列表显示 22 {key:value, ...} 字典显示 23 'expressions...' 字符串转化 24

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册