红茶的个人站点

  • 首页
  • 专栏
  • 开发工具
  • 其它
  • 隐私政策
专栏
系列文章
Python

设计模式 with Python 5:单例模式

单例模式是一个相对简单的模式,但极为重要。 在我过往的工作经验中,这个模式相当实用,换言之,你可能会在项目中频繁看到,或者使用这个模式,但就像介绍前几个模式时候说的那样,我们需要保持清醒,不能为了使用模式而使用,而是要谨慎评估是否应该使用。当然这并不容易,而且往往比实现具体的设计模式更难。 好了,闲话少说,我们直接来看单例模式。 单例模式 所谓的单例模式就是为了确保只生成一个类实例的而生的模式。 这在使用访问修饰符的编程语言中很简单,只需要合适地使用访问修饰符和一个类方法即可: package pattern5.j…

2021年6月26日 0条评论 1286点热度 0人点赞 魔芋红茶 阅读全文
Python

设计模式 with Python 4:工厂模式

工厂模式实质上包含两种不同的设计模式:工厂方法和抽象工厂。但他们本质上都是对创建对象进行封装,从而实现某种程度上的解耦的设计模式,所以放在一起进行介绍。 和《Head First 设计模式》不同,这里采用汉堡店的例子进行说明,因为我没吃过几次披萨,对披萨的种类知之甚少,所以就不用披萨店作为例子,但本质上两者除了名称没有根本上的区别。 汉堡店 假设我们要开一家汉堡店,并提供多种汉堡可供顾客点餐,最初的设计可能是这样的: HamburgStore是我们的汉堡店,通过orderHamburg方法可以点餐,具体的汉堡类有:…

2021年6月20日 0条评论 1202点热度 0人点赞 魔芋红茶 阅读全文
Python

设计模式 with Python3:装饰器模式

在撰写Python学习笔记系列文章的时候,函数装饰器和类装饰器提到过很多次,这也是Python编程中比较难理解和进阶的内容。当时我也顺便提到其本质是设计模式中的装饰器模式,那么今天我们就看一下经典设计模式中的装饰器模式到底是怎样的。 关闭开放原则 随着设计模式的学习深入,你就会发现设计模式的本质其实上是将复杂问题中的不可变部分和可变部分进行区分和封装,进而达到一种对不可变部分进行充分复用,对可变部分进行灵活扩展的程度。 当然,这在实际解决问题的时候你就会发现是一种相当理想化且极其艰难的事情,但好在我们已经有大佬们总…

2021年6月15日 0条评论 1279点热度 0人点赞 魔芋红茶 阅读全文
Python

设计模式 with Python2:观察者模式

虽然这个系列上一篇已经是在一个多月之前了:设计模式 with Python1:策略模式,但经过系统学习完《Fluent Python》,对Python这个语言的特性有了更深一层的认识,而且对于设计模式也是,就像《Fluent Python》的作者说的那样,设计模式虽然是一种编程语言无关的通用思想,但是具体到某种语言的实现本身,还是会无可避免地因为语言特性而变得天差地别(关于这点,在Python学习笔记23:Python设计模式中有详细说明。)。 所以,在接下来的本系列文章的撰写中,我会结合《Head First 设…

2021年6月13日 0条评论 1346点热度 0人点赞 魔芋红茶 阅读全文
Python

Python学习笔记38:类元编程

《Fluent Python》中多次提到,在Python中,类和函数都是一类对象,这指的是其开放程度对于Python语言的定制者和普通开发者是相同的,拥有同样的权限,我们可以像Python语言的底层开发人员那样,对类和函数进行定制和改造,以实现某种“高级需求”。 虽然对于普通的开发者来说似乎用不到,但作为语言学习的一部分,了解这部分知识至少对帮助你更深入的理解这门语言是有益的。而书中也提到,Python之所以能流行,似乎这种对于初学者好用的同时为资深开发者提供高级工具的特性带来很多益处。 在接下来我会按照《Flue…

2021年6月4日 0条评论 1341点热度 0人点赞 魔芋红茶 阅读全文
Python

Python学习笔记37:属性描述符

概览 在Python学习笔记36:动态属性和特性中我们介绍了如何使用特性来“代理”对实例属性的访问,事实上特性是一种特殊的属性描述符。 所谓的属性描述符,是一种实现了描述符协议的特殊类,这个关于属性访问的协议包括__set__\__get__\delete。 下面我们看下如何实现属性描述符。 实现 我们假设有这么一个订单类: class Order:    def __init__(self, quantity, price) -> None:        self.quantity = quantity …

2021年6月2日 0条评论 1204点热度 0人点赞 魔芋红茶 阅读全文
其它

腾讯云博客搭建VII

今天意外发现了一位网友的来信,咨询我博客RSS订阅地址的问题,这封邮件莫名其妙地被QQ邮箱归类到了垃圾邮件,所以才看到。 其实WordPress默认是有RSS的,但并不是一般性的xxx/rss或者xxx/feed,而是?=xxx这种,因为WordPress是PHP编写的嘛,自然如此。 但是只要是用支持Apache或者Ngnix这种支持伪静态的web service架设的,就能实现上面那种伪静态。 首先需要在设置-固定链接页面选择一个固定链接进行设置: 这时候正常情况下WordPress会在其网站根目录下创建一个用于…

2021年5月29日 0条评论 1505点热度 0人点赞 魔芋红茶 阅读全文
Python

Python学习笔记36:动态属性和特性

值得高兴的是,经过一段时间的学习,《Fluent Python》一书的内容只剩下最后一个部分了:元编程。 当然,我同时也发现这本书在中后部的内容难度陡然增加,但是随着书页的变薄,任何读者想必都难免会有喜悦和轻松之感。 闲话少说,进入今天的主题。 任何语言对面向对象的学习都是先介绍类,而类中最开始学的内容必然是属性。Python作为一门动态语言,相比静态语言,在类和对象的属性上面有更多“花样”,值得我们专门花时间总结一下。 属性 Python的类和对象中有一些特殊属性,可以帮助我们实现类似Java中的反射功能,直接“…

2021年5月28日 0条评论 1316点热度 1人点赞 魔芋红茶 阅读全文
Python

Python学习笔记35:使用Asyncio处理并发

从标题也可以看出,Asyncio包和Futures包一样,也是用于处理并发的,但是在实现机制和使用方式上都有很大差别,所以会在接下来对两者进行对比说明。 但在介绍Asyncio包之前,我们先要弄清楚一些必须的基础概念。 这里不打算按照《Fluent Python》同名章节的知识点安排,我觉得一上来就介绍Asyncio包很容易把人弄晕,因为我自己在阅读的时候都被弄的一头雾水。 基础概念 同步&异步 关于同步和异步的概念,我想在我的工作经历中遇到过最多的和最熟悉的无非是AJAX调用了: <script s…

2021年5月25日 0条评论 1322点热度 0人点赞 魔芋红茶 阅读全文
Python

Python学习笔记34:使用Futures处理并发

Python学习笔记34:使用Futures处理并发 概览 Futures模块是Python3中推荐使用的一个并发控制框架,我们可以使用这个模块编写多线程和多进程程序。 在Python中使用Futures模块很简单,只要先安装: pip install futures 然后在Python代码中引用: from concurrent import futures 在介绍如何用Futures实现并发之前,我们先看一个传统的下载程序。 一个传统的下载程序 这个示例程序使用requests摸块进行下载,这个第三方模块需要安…

2021年5月20日 0条评论 1333点热度 0人点赞 魔芋红茶 阅读全文
1…2021222324…27

魔芋红茶

加一点PHP,加一点Go,加一点Python......

技术栈
  • SpringBoot SpringBoot
  • SpringMVC SpringMVC
  • MySQL MySQL
  • Java Java
  • php php
  • Go lang Go lang
  • Linux Linux
  • 设计模式 设计模式
  • HTTP HTTP
  • Wordpress Wordpress
  • Python Python
  • Activiti Activiti
  • Redis Redis
  • SpringCloud SpringCloud
  • debug debug
  • 前端开发 前端开发
  • Maven Maven
  • 生活随笔 生活随笔
项目
  • Spring Easy Spring Easy
  • MD-img MD-img
  • oa-demo oa-demo
  • activiti-util activiti-util
  • 油猴脚本 油猴脚本
  • i-tree i-tree
  • auto-hot-key auto-hot-key
  • bilibili-down bilibili-down
  • haokan-down haokan-down
  • PEP中文 PEP中文
  • M3U-Helper M3U-Helper
工具箱
  • 我的Windows软件列表 我的Windows软件列表
Music
最新 热点 随机
最新 热点 随机
Vue3 学习笔记 1:开始 RuoYi 学习笔记 3:二次开发 RuoYi 学习笔记 2:常用功能 RuoYi 学习笔记 1:开始 Python 包管理工具 UV MySQL 从入门到精通 18:读写分离
开放服务器指定端口安装 ZooKeeperDEBUG:sudo 命令提示找不到 JAVA_HOME将 MySQL 修改为大小写不敏感允许异地连接 MySQLUbuntu 安装 MySQL
Edge 插件推荐 MySQL 从入门到精通 11:触发器 PEP 435 -- Adding an Enum type to the Python standard library 从零开始 Sping Boot 20:多环境部署 Python 图片压缩 PHP学习笔记13:类和对象 V
最近评论
魔芋红茶 发布于 4 年前(03月12日) 不好意思,上个月有点事,没空搞网站,现在弄好了,已经启用了新域名,谢谢关心~~
fuckbaidu 发布于 4 年前(02月25日) 兄弟,你新网址一直没备案成功
魔芋红茶 发布于 4 年前(12月18日) 谢谢。
啊长 发布于 4 年前(12月16日) 膜拜大佬了,希望越做越好 :exclaim:
nfmd 发布于 4 年前(10月31日) 腾讯云出了个60块六年多的bug
友情链接
  • NFMD's blog
  • 小金龙的blog
  • 幸哥的blog

COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务

Theme Kratos Made By Seaton Jiang

宁ICP备2021001508号

宁公网安备64040202000141号