2021年1月3日
摘要: .PHONY的引入 一般情况下,我们编写的Makefile中会有这样一个目标,执行make该目标会清除编译过程中产生的中间文件和生成的最终目标文件。 为了测试,这里编写一个简单的Makefile文件。该Makefile中并不提供编译源码的规则,只提供了一个clean目标,希望执行make clean 阅读全文
posted @ 2021-01-03 22:38 quinoa 阅读(1258) 评论(0) 推荐(1) 编辑
  2020年12月31日
摘要: Python类的组成主要包含两个部分,类的属性和类的方法。类的属性是对数据的封装,这些数据是用来描述类所抽象的事物的特征;类的方法是用来表示对象的特定行为。Python的类的方法又可以进一步细分为三种不同类型,即实例方法、类方法和静态方法。 这里就是对类的这三种方法进行详细讨论,包括它们是如何实现、 阅读全文
posted @ 2020-12-31 20:01 quinoa 阅读(593) 评论(0) 推荐(0) 编辑
  2020年12月30日
摘要: Makefile定义了一系列的规则来指定项目中哪些源文件需要先编译,哪些源文件后编译,哪些源文件需要重新编译,甚至更复杂的操作。一旦写好,只需要一个make命令,整个工程按照Makefile中写好的规则自动完成编译,这样极大的提高了软件开发效率。写好的Makefile文件是被make解释器解析的,m 阅读全文
posted @ 2020-12-30 20:51 quinoa 阅读(663) 评论(0) 推荐(0) 编辑
  2020年12月28日
摘要: 阅读别人编写的Python代码时,经常会在他们定义的类中看到以“__”为开头和结尾的方法,经过进一步学习后才知道类中实现的这类方法被称为“魔术方法”。“魔术方法”在一些情况下会被自动的调用,通过一些简单的定义就可以实现比较神奇的功能。如果你希望根据自己的需求去实现具有“特殊”功能的类,那么就需要对这 阅读全文
posted @ 2020-12-28 21:13 quinoa 阅读(563) 评论(0) 推荐(0) 编辑
  2020年12月24日
摘要: 1、什么是装饰器 在介绍装饰器之前,我们先来思考一个问题:使用Python语言进行程序设计时,如果我们想扩展一个函数的功能,一般会怎么做呢? 比如,有一个名为print_info函数,当前该函数内只做一些简单的打印操作,现在我们想扩展这个函数功能,如在发生错误时,我们将错误行号传入到该函数打印出来。 阅读全文
posted @ 2020-12-24 23:15 quinoa 阅读(334) 评论(0) 推荐(0) 编辑
  2020年12月23日
摘要: 1、什么是闭包 在介绍闭包概念前,我们先来看一段简短的代码 def sum_calc(*args): def wrapper(): sum = 0 for n in args: sum += n; return sum return wrapper 很显然,这段代码定义了一个名为sum_calc的函 阅读全文
posted @ 2020-12-23 21:24 quinoa 阅读(832) 评论(0) 推荐(0) 编辑
  2020年12月22日
摘要: 我们知道,Python中通过def关键字来定义一个函数,函数的定义形式如下: def fcn(param): pass fcn代表函数名称,param表示函数的参数。 这样定义函数的方式被称为显示定义函数,可以直接使用函数名进行调用。 fcn(input_param) 除上述显示定义函数外,Pyth 阅读全文
posted @ 2020-12-22 17:04 quinoa 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 1、什么是生成器 在介绍生成器之前,我们先来看一个简单的例子:创建一个列表,列表中存放[0, 9]范围内每个整数平方值 >>> L = [x * x for x in range(10)] >>> L [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 显然,通过列表生成式,很 阅读全文
posted @ 2020-12-22 15:07 quinoa 阅读(151) 评论(0) 推荐(0) 编辑
  2020年12月14日
摘要: 一、RTC简介 RTC(real-time clock)简称实时时钟,主要是用来计时,产生闹钟等。RTC一般有个备份电池,所以即使设备关机掉电,RTC也能在备份电池的供电下继续正常计时,这样在每次系统开机上电时就可以从RTC设备中读取到准确的时间。RTC时间在每次系统启动的时候会使用,在需要的时候也 阅读全文
posted @ 2020-12-14 23:47 quinoa 阅读(1112) 评论(0) 推荐(1) 编辑
  2020年12月11日
摘要: 1、另一种写法引入 前面学习编写字符设备驱动的时候都是使用register_chrdev函数注册字符设备驱动程序,该函数的原型如下: int register_chrdev(unsigned int major, const char *name, const struct file_operati 阅读全文
posted @ 2020-12-11 23:54 quinoa 阅读(368) 评论(0) 推荐(0) 编辑