前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python学习手册(第4版).1

Python学习手册(第4版).1

作者头像
云深无际
发布2020-08-11 17:33:36
发布2020-08-11 17:33:36
9200
举报
文章被收录于专栏:云深之无迹云深之无迹

装饰器就是一个给对象添加额外功能的函数,其本质是函数。它的基本构造:高阶函数+函数嵌套+闭包。

装饰器 即在代码运行期间动态增加功能的方式。

3大条件:

1. 函数可作为对象,赋值给变量,也就是函数可以作为参数,也可以作为返回值。

2. 闭包,函数内部可以嵌套函数,可分为外函数和内函数。内函数可以运用外函数的临时变量,并且外函数的返回值是内函数的引用,就形成一个闭包。

3. 高阶函数,即函数式编程,条件也是第1条。

说到脚本语言和静态语言,首先要思考:如何将人类编写的程序(源代码)变成机器能执行的目标代码呢?这涉及到程序执行的两种方式:编译和解释。

编译是指将源代码一次性转换成目标代码的过程,也就是将人类编写的代码转成了计算机可执行的语言。

解释是指将源代码逐条转换成目标代码,并且同时逐条的运行。

编译相当于一次性的翻译源代码,编译之后就不再需要源代码了。而解释每次都需要源代码,再将源代码转成目标代码,机器才能执行。

现在回归主题。根据执行方式(编译、解释)的不同,编程语言分为两类,即静态语言和脚本语言。静态语言是使用编译执行的编程语言,如C语言、C++、Java语言。脚本语言则是使用解释执行的编程语言,如Python、JavaScript、PHP语言。

静态语言和脚本语言除了执行方式不同外,优势也不同。静态语言一次性生成目标代码,优化更充分,程序运行速度更快。脚本语言每一次执行都需要源代码,因此维护更灵活,也因为保留了源代码,它可以跨多个操作系统平台。

我知道这些都是从北理嵩老师课上记下来的。

脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。

脚本语言是为了缩短传统的 编写- 编译- 链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。它的命名起源于一个脚本“screenplay”,每次运行都会使 对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言。

一个脚本通常是解释执行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。而宏语言则可视为脚本语言的分支,两者也有实质上的相同之处。

Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中.

Python标准的pickle模块提供了一个简单的对象持久化系统:它能够让程序轻松地将整个Python对象保存和恢复到文件和文件类的对象中。

NumPy系统是Python的一种开源的数字扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统。

Python语言的改变必须遵循一套规范的有约束力的程序(称作PEP流程),并需要经过规范的测试系统和BDFL进行彻底检查。值得庆幸的是,正是这样使得Python相对于其他语言可以保守地持续改进。

自从PHP出来声称自己是世界上最好的编程语言后,其它语言之间的战争就已经停止了,因为只要遇到不可解决的矛盾,我们都会把矛头指向那个全民公敌PHP。从这个层面来看,PHP确实配得上这个称号。牺牲自我,造福大众。

再者,就像数学一样,其设计也具有正交性(orthogonal),也就是这门语言大多数组成部分都遵循一小组核心概念。2020-08-04

解释器是代码与机器的计算机硬件之间的软件逻辑层。

IDLE是开发 python 程序的基本IDE(集成开发环境),具备基本的IDE的功能,是非商业Python开发的不错的选择。当安装好python以后,IDLE就自动安装好了,不需要另外去找。

.pyc”就是编译过的“.py”源代码

python的执行过程:

将.py的源代码编译成.pyc的字节码

然后又python虚拟机执行字节码文件。

如果源代码没改动,直接执行对应的字节码,提高速度。

Python虚拟机(Python Virtual Machine,简写为PVM)

PVM就是迭代运行字节码指令的一个大循环,一个接一个地完成操作。

每次编写(或修改)完 C# 代码,Unity 会花几十秒甚至很多的时间进行编译,等待编译完成的过程,我除了熟练咒骂破电脑以外,也理解了岁月静好是什么意思。

通过从网络上获得的一些第三方工具,将Python程序转为可执行程序(在Python世界中称作冻结二进制文件,Frozen Binary)是有可能的。

当在交换模式下输入两行或多行的复合语句时,提示符会发生变化。在简单的shell窗口界面中,交互提示符会在第二行及后边的行由>>>变成...;在IDLE界面中,第一行之后的行会被自动缩进。

在交互提示模式中,注意像结束for循环和if测试那样,用一个空行结束多行复合语句。必须两次按下Enter键,来结束整个多行语句,然后让其运行。

为何两次?因为你得告诉python什么时候多行语句输入结束,开始执行。否则,python以为你要输入下一行。

为了能够永久的保存程序,需要在文件中写入代码,这样的文件通常叫做模块。模块是一个包含了Python语句的简单文本文件。一旦编写完成,可以让Python解释器多次运行这样的文件中的语句,并且可以以多种方式去运行:通过系统命令行、通过点击图标、通过在IDLE用户界面中选择等方式。无论它是如何运行的,每一次当你运行模块文件时,Python都会从头至尾地执行模块文件中的每一条代码。

在系统提示模式下使用文件扩展名,但是在导入时别使用文件扩展名。

它们的第一行是特定的。脚本的第一行往往以字符# !开始(常常叫做“hash bang”),其后紧跟着机器Python解释器的路径。

硬编码Python解释器的路径

这句话指的是写Python的绝对路径/usr/local/bin/Python而不是像下文那样用/usr/bin/env去搜索

,而可以在文件特定的第一行注释中像这样写:

#!/usr/bin/env python

...script goes here...

当这样编写代码的时候,env程序可以通过系统的搜索路径的设置(例如,在绝大多数的UNIX Shell中,通过搜索PATH环境变量中的罗列出的所有目录)定位Python解释器。这种方法可以使代码更具可移植性,因为没有必要在所有的代码中的第一行都硬编码Python的安装路径。

假设在任何地方都能够使用env,无论Python安装在了系统的什么地方,你的脚本都可以照样运行:跨平台工作时所需要做的仅仅是改变PATH环境变量,而不是脚本中的第一行。当然,这是env在任何系统中都是相同的路径的前提下(有些机器,还有可能在/sbin、/bin或其他地方);如果不是的话,这种可移植性也就无从谈起了。

(multipurpose Internet mail extensions,多用途互联网邮件扩展类型),是设定某种扩展名的文件用一种应用程序来打开的方式类型

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档