美文网首页
2020-02-18python高手之路学习随笔(2)

2020-02-18python高手之路学习随笔(2)

作者: 七天七念 | 来源:发表于2020-02-18 21:03 被阅读0次

第二章模块与库

2.1 导入系统

Python之禅

import this

The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

sys版本包含很多Python导入系统的信息,可以通过sys.modules变量获取,她是一个字典,其中键是模块名,对应的值为模块对象。
sys.modules 可以查看导入到系统里面的模块信息,返回数据为字典
sys.builtin_module_names 可以查看python内置模块的信息,返回数据为元组
Python再导入模块时依赖一个路径列表,可以通过修改sys.path修改获得路径
'''
import sys
sys.path.append('/foo/bar')

或者直接修改环境变量PYTHONPATH
$ PYTHONPATH=/foo/bar python
import sys
if "/foo/bar" in sys.path:
true
'''
区别还是有的第一种办法只是临时修改的局部环境变量,只在当前环境生效,第二种是持久性修改
再全部环境生效

2.2 标准库

atexit 允许注册在程序退出时调用的函数
argparse 提供解析命令行参数的函数
bisect 为可排序列表提供二分查找算法
calendar 提供一组跟日期相关的函数
codecs 提供编解码数据的函数
collections 提供一组有用的数据结构
copy 提供复制数据的函数
csv 提供用于读写csv文件的函数
datetime 提供用于处理日期和时间的类
fnmatch 提供用于匹配Unix风格文件名模式的函数
concurrent 提供异步计算(python3中内置了,python2种需要安装)
glob 提供用于匹配Unix风格路径模式的函数
io 提供用于处理I/O 流的函数。 在Python3 中,它还包含 StringIO 可以想处理文件一样处理字符串。
json 提供用于来读写JSON格式数据的函数
logging 提供对Python内置的日志功能的访问
multiprocessing 可以在应用程序中运行多个子进程,而且提供API 让这些子进程看上去像线程一样。
operator 提供实现基本的Python 运算符功能的函数,可以使用这些函数而不是自己写lambda 表达式
os 提供对基本的操作系统函数的访问
random 提供生成伪随机数的函数
re 提供正则表达式功能
sched 提供一个无需多线程的事件调度器
select 提供对函数select() 跟poll() 的访问, 用于创建事件循环。
shutil 提供对高级文件处理函数的访问
signal 提供用于处理POSIX信号函数
tempfile 提供用于创建临时文件和目录的函数
threading 提供对处理高级线程功能的访问
urllib 提供处理和解析URL的函数
uuid 可以生成全局唯一标记符

以上是标准库的清单可以作为一个快速参考。
大部分都是python源代码编写的,可以查看源代码

2.3 外部库

学习外部库考虑
Python3 兼容
开发活跃
维护活跃
与各个操作系统发行版打包在一起
api兼容
最好的思路是通过写一个包装器进行封装。然后利用包装器的功能,如果出问题了就修改包装器,只要功能一样,无所谓内置是靠什么实现的

2.4框架

通过组合一系列的外部库跟内部库所开发的库的集合,框架已经为你的代码准备好了架子,只要你通过代码进行丰富,适合于应用的快速开发。
框架的优缺点:
功能越全面的框架越难以修改,但是开发简单。
功能越少的框架,自定义功能越简单,但是需要你自己撘建功能。

其他更多的话语也只是对编程的思维进行规划,

话外,本章中举例了通过Hy模块导入器跟加载器,但是我感觉这玩意更可能不太实用吧。实际上是通过语法书把Ht代码翻译成python的代码而已,实际功能是通过提供的一个默认函数import_file_to_module()来实现的,有机会在看看Hy吧。估计短时间之内没了解的机会了(Hy,外国开发的将Lisp语言耦合python的一种语言,通过基础语法用Lisp,同时也能使用python的库,在运行的时候先将本身的代码通过抽象语法树,转化成对应的python代码,来运行,实际上就是一种将Lisp代码翻译成python代码,然后运行在cpthon解释器上的做法,可以认为是Lisp语言的一种外扩超集

高手之路第二章模块与库学习完毕。

相关文章

  • 2020-02-18python高手之路学习随笔(2)

    第二章模块与库 2.1 导入系统 Python之禅 sys版本包含很多Python导入系统的信息,可以通过sys....

  • Qt5学习地址

    Qt 学习之路 2(1):序(Qt 学习之路 2(1):序) Qt 学习之路 2(2):Qt 简介(Qt 学习之路...

  • 高手的学习之路

    信息时代,每天被各种各样的信息充斥,可是为什么越学习越感到自己无知呢? 每天你通过刷微博微信感觉学到了“五车”的知...

  • 《学习高手》2

    康奈尔笔记法右侧记录区,左侧关键词,下侧思考。简化版是把页面左侧80%作为课堂笔记区,右侧20%课后关键知识点提炼...

  • 学习高手2

    这本书的作者,引进了许多学习方法,什么康奈尔笔记法、5W2H分析思考法、鱼骨分析法、、金字塔原理法、麦肯锡7步解决...

  • #30天橙长计划#张鑫+结构思考+第3天

    张鑫 沈阳【每日一结构】 理解罗辑思维183期“怎样成为一个高手”反思学习之道 G:【反复刻意练习——高手养成之路...

  • 随笔||学习之路

    前些时候报名了一个学习课,主要是大家的公益讲授课。 昨天开始进行,两天时间,上下午各一场,有讲散文,有讲写作,有讲...

  • 通往“高手”之路 Part 2

    昨天写完了这个系列的第一篇文章,我被自己元认知能力审视了一整天。这也许就是自己仍旧没有成为“高手”的原因之一吧,那...

  • 成为高手

    以成为高手而学习。 不断打磨自己的技能, 走出舒适区无疑是令人沮丧的。 但是这是成为高手的必经之路。 我可以在游戏...

  • 2020-02-21python高手之路学习随笔(5)

    第五章 文档 Python中 文档格式的事实标准是reStructuredText 简称 reST,是一种轻量级的...

网友评论

      本文标题:2020-02-18python高手之路学习随笔(2)

      本文链接:https://www.haomeiwen.com/subject/ntrnfhtx.html