Google Python 编程风格
Python相较于C++来说,语法和写法都比较简单,所以不像C++一样有那么多的规范,主要从语言规范和风格规范两个方面制定规范。
语言规范Lint
Tip: 对你的代码运行pylint
定义
pylint是一个在Python源代码中查找bug的工具. 对于C和C++这样的不那么动态的语言, 这些bug通常由编译器来捕获. 由于Python的动态特性, 有些警告可能不对. 不过伪告警应该很少.
优点
可以捕获容易忽视的错误, 例如输入错误, 使用未赋值的变量等.
缺点
pylint不完美. 要利用其优势, 我们有时侯需要:
围绕着它来写代码
抑制其告警
改进它
忽略它.
结论
确保对你的代码运行pylint.抑制不准确的警告,以便能够将其他警告暴露出来。
你可以通过设置一个行注释来抑制告警. 例如:
dict = 'something awful' # Bad Idea... pylint: disable=redefined-builtin
pylint警告是以一个数字编号(如 C0112 )和一个符号名(如 emp ...
Google C++ 编程风格
C++ 是 Google 大部分开源项目的主要编程语言。正如每个 C++ 程序员都知道的, C++ 有很多强大的特性, 但这种强大不可避免的导致它走向复杂,使代码更容易产生 bug, 难以阅读和维护。
本指南的目的是通过详细阐述 C++ 注意事项来驾驭其复杂性。这些规则在保证代码易于管理的同时, 也能高效使用 C++ 的语言特性。
风格, 亦被称作可读性, 也就是指导 C++ 编程的约定. 使用术语 “风格” 有些用词不当, 因为这些习惯远不止源代码文件格式化这么简单。
使代码易于管理的方法之一是加强代码一致性。让任何程序员都可以快速读懂你的代码这点非常重要。保持统一编程风格并遵守约定意味着可以很容易根据 “模式匹配” 规则来推断各种标识符的含义。创建通用, 必需的习惯用语和模式可以使代码更容易理解。在一些情况下可能有充分的理由改变某些编程风格, 但我们还是应该遵循一致性原则,尽量不这么做。
头文件一个.cc/.cpp文件都应该对应一个.h文件。也有些常见例外,例如单元测试代码和只包含main()入口函数的源文件。
Self-contained 头文件
Tip: 头文件应该能够自给 ...
CMake语言和语法
在项目或者工作中,会不可避免的使用到cmake来构建我们的项目,所以掌握cmake的基本语法,以及常用的和进阶的使用方法是非常重要的。
下面我们将从一个简单的hello cmake示例开始,一步步的深入了解cmake的用法。
Let’s Go!
初探CMake,hello cmake准备工作创建目录 /home/workspace/cmake_practice,我们之后的练习都放到这个目录的子目录下
在cmake_practice目录下创建test1
cd /home/workspace/cmake_practicemkdir test1cd test1
创建main.c以及CMakeLists.txt
main.c内容如下
include <stdio.h>int main(void){ printf("Hello CMake!\n") return 0;}
CMakeLists.txt内容如下
PROJECT(hello-cmake)SET(SRC_LIST main.c)MESSAGE(STATUS &quo ...
关于EDCC算法的诞生、原理、效果
EDCC(Enhanced and Discriminative Competitive Code): 高效、准确的掌纹识别算法掌纹识别技术的优势作为新崛起的生物特征识别技术之一,掌纹识别可以从分辨率较低的图像中提取出稳定、抗噪能力强且具有识别力的特征。对比其他的生物特征识别技术,掌纹识别技术有以下优势:
与指纹相比,掌纹的识别面积更大,包含的信息更丰富,而且掌纹比指纹更不易受损具有长期稳定性。掌纹识别对图像的分辨率要求不是特别高,所以在采集设备的造价比指纹低很多。
与人脸相比,掌纹不受眼镜、表情、妆容等因素的影响,稳定性较高,并且在用户接受度方面,掌纹的采集方式对用户更加友好。
与虹膜、DNA相比,掌纹的识别准确率虽然不及它们,但是掌纹采集设备造价远低于这两种生物特征识别技术的采集设备。
与签名、步态等行为特征相比,掌纹识别不受人们习惯的影响,特征不会随着时间改变,并且识别的准确率远高于行为特征。
综上所述,掌纹识别有识别精度高、采集设备成本低、稳定性高、用户接受度高等优点,在生活中的应用越来越广泛。
掌纹识别的基本步骤掌纹特征识别过程分为数据库的创建和特征库的检索。
数据库创 ...
整理一些常用的 Git 指令
GitHub创建仓库提示代码echo "# 项目名" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:Leosocy/项目名.git
git push -u origin master
若仓库存在直接push
git remote add origin git@github.com:Leosocy/test.git
git push -u origin master
常用操作创建仓库(初始化)在当前指定目录下创建
git init
新建一个仓库目录
git init [project-name]
克隆一个远程项目
git clone [url]
添加文件到缓存区添加所有变化的文件
git add .
添加名称指定文件
git add text.txt
配置设置提交代码时的用户信息
git config [--global] user.name "[ ...
Markdown认识与入门
一、认识MarkdownMarkdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处理软件 Word 或 Pages 有大量的排版、字体设置。它使我们专心于码字,用「标记」语法,来代替常见的排版格式。例如此文从内容到格式,甚至插图,键盘就可以通通搞定了。
Markdown优点。
不用关心排版,让你更注重文字。
语法简单,易读写。
纯文本,兼容所有的文本编辑器。
二、Markdown语法1.标题
用#表示
可以表示最高6级标题,#的数量对应标题的级数一级标题二级标题2.引用在要引用块的句首添加>符号
这是引用
引用是可以嵌套的
这是外层
这是内层
3.列表3.1无序列表无序列表使用*、+或者-作为列表的标记(注意要在这些符号后面加上空格)
一
二
三
3.2 有序列表有序列表使用 数字+.+空格作为列表的标记,而且数字并不决定列表的顺序
一
二
三
3.3 无序列表中插入有序列表
菜单一
子菜单1
子菜单2
菜单二
3.3 列表中插入其他元素列表中有引用
列表中的引用
这是列表中的引用 ...