自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

转载 Git 协作:Fetch Pull Push Branch Remote Rebase Cherry-pick相关

前言学习git的时候,我们首先学习的是最常用的,自己独立开发Software时用的命令:git init //初始化git仓库git add <file_name> ...

2019-09-19 19:06:00 293

转载 apt-get update 101错误解决办法

在一次装好Ubuntu系统, 执行sudo apt-get update时,报了错"W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg Cannot initiate the connection to security.ubuntu.com:...

2019-08-08 17:38:00 1374

转载 Python函数参数中的冒号与箭头

在一些Python的工程项目中,我们会看到函数参数中会有冒号,有的函数后面会跟着一个箭头,你可能会疑惑,这些都是什么东西?其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型。函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型。更官方的解释:此为type hints,是Python 3.5新加的功能,作用如上所述,官方文档为https...

2019-04-17 16:08:00 1034

转载 Python中的多线程编程,线程安全与锁(二)

在我的上篇博文Python中的多线程编程,线程安全与锁(一)中,我们熟悉了多线程编程与线程安全相关重要概念,Threading.Lock实现互斥锁的简单示例,两种死锁(迭代死锁和互相等待死锁)情况及处理。今天我们将聚焦于Python的Threading模块总结和线程同步问题。1. Threading模块总结1.1 Threading模块概览threading用于提供线程相关...

2018-12-20 20:32:00 169

转载 使用pdb模块调试Python

在Python中,我们需要debug时,有三种方式:加log语句。最简单的方式是添加print()语句来输出我们想要获知的状态或者变量,好处是简单容易操作,坏处是debug完了之后,还需要将print语句注释掉;进阶的方法是使用logging模块写log语句,这样做的好处是:能把log语句分级,并且能够根据参数决定输出什么样层级的log,用这种方法可以让我们不用注释掉log语句。...

2018-12-14 20:21:00 390

转载 Python中的多线程编程,线程安全与锁(一)

1.多线程编程与线程安全相关重要概念在我的上篇博文聊聊Python中的GIL中,我们熟悉了几个特别重要的概念:GIL,线程,进程,线程安全,原子操作。以下是简单回顾,详细介绍请直接看聊聊Python中的GILGIL:Global Interpreter Lock,全局解释器锁。为了解决多线程之间数据完整性和状态同步的问题,设计为在任意时刻只有一个线程在解释器...

2018-11-28 15:12:00 188

转载 聊聊Python中的GIL

对于广大写Python的人来说,GIL(Global Interpreter Lock,全局解释器锁)肯定不陌生,但未必清楚GIL的历史和全貌是怎样的,今天我们就来梳理一下GIL。1. 什么是GILGIL的全称是 Global Interpreter Lock,全局解释器锁。之所以叫这个名字,是因为Python的执行依赖于解释器。Python最初的设计理念在于,为了解决多线程之...

2018-11-19 18:50:00 280

转载 Python中的单元测试模块Unittest快速入门

前言为什么需要单元测试?如果没有单元测试,我们会遇到这种情况:已有的健康运行的代码在经过改动之后,我们无法得知改动之后是否引入了Bug。如果有单元测试的话,只要单元测试全部通过,我们就可以保证没有Bug被引入。因此,单元测试是保证软件工程质量的一个很重要的方面。Python中的单元测试Python最强大的地方在于,开发效率高,并且有丰富的Package,避免重复造轮子。那...

2018-11-14 16:24:00 190

转载 设计模式之策略模式的Python实现

1.策略模式解决的是什么问题策略模式解决的应用场景是这样的:在业务场景中,需要用到多个算法,并且每个算法的参数是需要调整的。那么当不同的行为堆砌到同一个类中时,我们很难避免使用条件语句来选择合适的行为。我们需要解决的是把算法封装起来,达到算法的变化不会影响到使用算法的客户的效果。实际上就是把算法模块给完全独立出来,并且易于配置、修改和扩展,实现“开闭”原则。通俗来讲就是针对一...

2018-10-25 19:15:00 207

转载 设计模式之单例模式与工厂模式的Python实现(二)

2.工厂模式工厂模式是创建型设计模式的一种。核心的思想是,通过传递给类或函数某种产品的信息来创建产品并返回。当我们想得到产品a对象,只需把产品a的名字传递给工厂函数就能得到产品a对象。而核心思想的背后是为了遵循著名的“开闭原则”:对扩展开放,对修改封闭。当添加新功能时,对已经有的函数代码不需要修改,只需要添加新功能相关的代码即可。举一个最简单的例子:假如我们要写一个计算器,实现...

2018-10-12 17:30:00 102

转载 设计模式之单例模式与工厂模式的Python实现(一)

1. 单例模式单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很...

2018-09-20 14:00:00 151

转载 Python中的返回函数与闭包

返回函数,顾名思义,就是高阶函数可以把函数作为return值返回。与闭包的关系是:闭包需要以返回函数的形式实现。一.返回函数比如我们有一个求和函数:>>> def calc_sum(num_list): s = 0 for i in num_list: s += i return s>...

2018-09-11 17:00:00 233

转载 Python的高阶函数小结

一.高阶函数定义简而言之,Python的高阶函数就是指一个函数作为参数传递给另外一个函数的用法。举一个最简单的高阶函数来说明:>>> def add(x,y,f): return f(x) + f(y)>>> add(1,-2,abs)3可能会有同学问,直接return abs(x) + abs(y)不就...

2018-09-10 16:56:00 196

转载 Python的生成器Generator小结

一.生成器的介绍在介绍生成器(Generator)之前,我们首先需要熟悉列表生成式,列表生成式是Python内置的简单又强大的用来创建列表的生成式。举个例子,如果我们想生成[1*1,2*2,3*3,4*4,5*5,6*6,7*7,8*8,9*9]比较笨的方法是l = []for i in range(1,10): l.append(i*i)...

2018-09-07 15:48:00 175

转载 Vim插件YCM的安装

YouCompleteMe(YCM)是一款非常好用的Vim插件,但是很多人安装的时候会出问题(尤其是涉及到C和C++的补全),我安装的时候也遇到了问题,现在解决了,给大家参考:Step1:通过Vundle安装YCM,具体参考我的上一篇博文Step2:cd ~/.vim/bundle/YouCompleteMe./install.py --clang-complet...

2018-09-03 17:25:00 246

转载 用Vundle管理Vim插件

作为程序员,一个好用的Vim,是极其重要的,而插件能够使原本功能羸弱的Vim变得像其他功能强大的IDE一样好用。然而下载、配置插件的过程比较繁琐,大家往往需要自己进行下载/配置等操作,如果还涉及到更新/删除插件,那就更麻烦了。幸运的是我们有Vundle来管理Vim插件。Vundle本身就是个Vim插件,有了这个插件,我们只需要配置好~/.vimrc这个文件,就可以通过命令管理其他Vi...

2018-09-03 14:52:00 163

转载 声卡(Sound Card)基本概念

声卡 (Sound Card)是实现声音的模拟/数字信号相互转换、信号处理的一种硬件。声卡的基本功能是把来自话筒、磁带、光盘的原始声音信号加以转换(模数转换或者数模转换),输出到耳机、扬声器、扩音机、录音机等声响设备,或通过音乐设备数字接口(MIDI)使声音设备发出声音。重要概念1.在先不考虑耳机/话筒中自带独立声卡的情况下,无论是电脑、手机,3.5mm耳机接口输出的...

2018-07-24 10:06:00 2201

转载 Linux中Source的用法

source命令:source命令的功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。用法:source filename 或 . filenamesource命令(从 C Shell 而来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell...

2018-07-04 15:08:00 238

转载 Kernel Space与User Space(转)

对于刚刚接触Linux的菜鸟来说,可能会不理解大家常说的Kernel Space和User Space是什么意思,我简单搜了一下,发现阮一峰写过一个比较简洁的介绍,贴下来给大家:学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间)。简单说,Kernel space 是 Linux 内核的运行空间,User space ...

2018-06-12 15:38:00 206

转载 [Python]Pandas简单入门(转)

本篇文章转自https://colab.research.google.com/notebooks/mlcc/intro_to_pandas.ipynb?hl=zh-cn#scrollTo=zCOn8ftSyddH是Google的Machine Learning课程中关于Pandas的入门教程,感觉讲的很简单很实用,直接搬运过来学习目标:大致了解...

2018-06-01 14:20:00 179

转载 Python的自省机制

什么是自省?在日常生活中,自省(introspection)是一种自我检查行为。在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么、它知道什么以及它能做什么。自省向程序员提供了极大的灵活性和控制力。说的更简单直白一点:自省就是面向对象的语言所写的程序在运行时,能够知道对象的类型。简单一句就是,运行时能够获知对象的类型。例如python, buby, object...

2018-05-30 12:43:00 136

转载 谈谈Python中元类Metaclass(二):ORM实践

什么是ORM?ORM的英文全称是“Object Relational Mapping”,即对象-关系映射,从字面上直接理解,就是把“关系”给“对象”化。对应到数据库,我们知道关系数据库(例如Mysql)的特征就是数据与数据之间存在各种各样的“关系”,这种“关系”是由Table(表)来维护和表现的。ORM就是把关系数据库的一个"表"映射成一个"类",然后给"类"添加各种各样的方...

2018-05-28 16:43:00 199

转载 Python的垃圾回收机制

总的来说,Python的垃圾回收机制是以引用计数为主,同时为了解决循环引用的问题以及提升效率,采取标记-清除和分代收集为辅助办法。1.引用计数引用计数的核心思想是:每一个对象都有一个计数器ob_refcnt用来标记这个对象被引用的次数(比如被1个变量引用则为1,被2个变量引用则为2)。当引用次数为0时,系统会马上回收这个对象。优点:简单实时性...

2018-05-23 17:25:00 128

转载 [Python]Pip换源以及设置代理

Install python package with proxysudo pip install python-magic --proxy=https://your-proxy.com2.No distributions at all found for autopep8Upgrade pip first: this error may caused ...

2018-05-23 13:10:00 654

转载 开源的许可证GPL、LGPL、BSD、Apache 2.0的通俗解释

软件开发者要开源软件,不单单是开放源代码就可以了,选择一种许可证很重要,一个许可证之于软件就相当于价值观之于普通人,代表了这个软件的基本品性。一个错误的许可证选择可能会直接导致整个项目的失败。  各种开源的许可证主要的限制还是在redistribution(发布),所以个人/商业公司开发的软件包含了GPL的代码,只要你不发布,是可以任意使用的。下面是几个开源许可证的区别:GP...

2018-05-18 15:57:00 179

转载 谈谈Python中元类Metaclass(一):什么是元类

简单的讲,元类创建了Python中所有的对象。我们说Python是一种动态语言,而动态语言和静态语言最大的不同,就是函数和类不是编译时定义的,而是运行时动态创建的。比方说我们要定义一个HelloWorld的class,就写一个helloworld.py模块:class HelloWorld(object): def helloworld(self): ...

2018-05-15 21:20:00 268

转载 进程,线程,以及Python的多进程实例

什么是进程,什么是线程?进程与线程是包含关系,进程包含了线程。进程是系统资源分配的最小单元,线程是系统任务执行的最小单元。打个比方,打开word,word这个程序是一个进程,里面的拼写检查,字数统计,更改字体等等功能是一个个线程。当word这个进程启动的时候,系统分配给word进程一些资源(CPU,内存等),当某个线程执行时需要资源时,就从word进程的资源池里取。关于P...

2018-05-04 11:22:00 124

转载 Git使用规范流程(转载)

作者:阮一峰日期:2015年8月 5日团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。下面是ThoughtBot的Git使用规范流程。我从中学到了很多,推荐你也这样使用Git。第一步:新建分支首先,每次开发新功能,都应该新建一个单独的分支(这方面可以参...

2018-04-26 10:52:00 123

转载 最清楚的01背包问题讲解

题目:01背包问题描述:有编号分别为a,b,c,d,e的N=5件物品,它们的重量w分别是2,2,6,5,4,它们的价值v分别是6,3,5,4,6,每件物品数量只有一个,现在给你个承重为M=10的背包,如何让背包里装入的物品具有最大的价值总和sum_v?在DP(dynamic programming,动态规划)问题中,01背包问题是比较基础和简单的了,但是网上很多人的讲解要么...

2018-04-25 17:44:00 799

转载 读懂diff(转载)

作者:阮一峰日期:2012年8月29日diff是Unix系统的一个很重要的工具程序。它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入:  $ diff <变动前的文件> <变动后的文件>diff就会告诉你,这两个文件有何差异。它的显示结果不太好懂,下面我就来说明,如何读懂diff。...

2018-04-25 15:20:00 173

转载 如何用git命令生成Patch和打Patch

在程序员的日常开发与合作过程中,对于code的生成patch和打patch(应用patch)成为经常需要做的事情。什么是patch?简单来讲,patch中存储的是你对代码的修改什么是生成patch?生成patch就是记录你对代码的修改并将其保存在patch文件中什么是打patch?打patch就是将patch文件中对代码的修改,应用到源代码,从而把对代码的修改应用到cod...

2018-04-24 16:18:00 2537

转载 Jenkins简明入门(三) -- Blue Ocean,让一切变得简单

我们在上一节Jenkins简明入门(二)中见识到了Jenkins能做些什么:利用Jenkins完成python程序的build、test、deployment。同时,也有一种简单的方法,不需要写Jenkinsfile文件,只需要通过可视化配置,就可以完成Jenkins的部署。BlueOcean的背景就是为了适应Jenkins Pipeline和 Freestyle jobs任务...

2018-04-17 16:04:00 1916

转载 TeamForge使用指南

1.什么是TeamForge可以把TeamForge简单的理解为另外一种github2.TeamForge的地址与Project有关,一般会有明确的Link3.TeamForge登录用户名和密码由管理员给定4.TeamForge的git clone如上图所示,假如我们要git clonemdplayer这个project,则在REPOS...

2018-04-10 15:27:00 465

转载 Jenkins简明入门(二) -- 利用Jenkins完成Python程序的build、test、deployment

大家可能还没搞清楚,Jenkins到底能做什么?本节内容利用Jenkins完成python程序的build、test、deployment,让大家对Jenkins能做的事情有一个直观的了解。本节内容改写自https://jenkins.io/doc/tutorials/build-a-python-app-with-pyinstaller/。1. Fork,Clone Gi...

2018-03-28 18:29:00 360

转载 谈谈Python中的decorator装饰器,如何更优雅的重用代码

众所周知,Python本身有很多优雅的语法,让你能用一行代码写出其他语言很多行代码才能做的事情,比如:最常用的迭代(eg: for i in range(1,10)), 列表生成式(eg: [ x*x for x in range(1,10) if x % 2 == 0])map()能让你把函数作用于多个元素, reduce()能让你把多个元素的结果按照你预想的方式组合在一起,...

2018-03-27 14:39:00 116

转载 Jenkins简明入门(一) -- 安装

如今Jenkins官网的Guide里使用了Docker,网上很多Jenkins入门教程都已过时了,所以写这一篇入门教程。官网的Guide Link是:https://jenkins.io/doc/pipeline/tour/getting-started/我写的Jenkins入门是基于官网Guide,但是有所不同:除了汉语翻译外,官网的Guide中启动Jenkins时也用了doc...

2018-03-26 13:24:00 138

转载 Python CSV 超简明用法

平常经常会用CSV存储数据,不可避免的会跟CSV文件的读写操作扯上关系。Python有CSV这个Package来解决这个问题,官网也有比较详细的教程https://docs.python.org/3/library/csv.html 。但是我觉得往往大家只是想进行简单的读写、修改等操作,网上纷纷扰扰的教程和官网的教程有点大而全了,反而无法让大家在最短的时间里实现最简单的功能。 所以...

2017-09-30 14:22:00 101

转载 Intel CPU命名规则的简略解析

Intel的CPU命名规则一直不是特别清楚,而网上的很多解读是不准确,甚至是错误的,应该以官方文档为准。所以我在查阅官方资料的基础上,以一种简明扼要的方式记录下来。值得说明的是,这个解析只是简略的,一般人只要知道这些就够了,发烧玩家应该搜索想要了解的CPU的详细规格信息,例如频率、制程、缓存、功耗甚至跑分等数据。一款Intel CPU的命名,一般由5个部分组成:品牌,品牌标识符,Ge...

2017-05-25 15:23:00 3933

转载 SSH小结

工作有一段时间了,经常用SSH登录远程机器,但对原理一直不是很了解,所以查阅了一些资料,写个小结。一、 SSH是什么?SSH的全称是Secure Shell, 是一种“用来在不安全的网络上安全地运行网络服务的一种加密网络协议”。简单说,SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安...

2017-05-12 13:44:00 144

转载 Python快速上手JSON指南

什么是JSON?网上对JSON有很多教程,有各种各样的解释。一言以蔽之,JSON本质上是一种语法,这种语法的作用是把数据以字符串的形式存储、传递,多用于Web编程。JSON的典型示例'{"employees": [{ "firstName":"Bill" , "lastName":"Gates" },{ "firstName":"George" , "l...

2017-01-04 17:20:00 100

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除