标签分类
当前位置:首页 > 程序设计电子书 > Python电子书网盘下载
Python源码剖析 Python源码剖析
Yuanoung

Yuanoung 提供上传

资源
47
粉丝
14
喜欢
58
评论
5

    Python源码剖析 PDF 全书完整版

    Python电子书
    • 发布时间:

    给大家带来的一篇关于Python相关的电子书资源,介绍了关于Python源码、Python源码剖析方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小29.1 MB,陈儒编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.3,更多相关的学习资源可以参阅 程序设计电子书Python电子书、等栏目。

  • Python源码剖析 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1v2ZjplZVhHBo2WO_GFCzjA
  • 分享码:uht8
  • Python源码剖析:深度探索动态语言核心技术》合适于Python程序猿、动态性語言发烧友、C程序猿阅读文章。

    做为流行的动态性語言,Python不但简易易懂、移植性好,并且有着强劲丰富多彩的库的适用。除此之外,Python强劲的扩展性,让开发者既能够 容易地运用C/C++撰写Python的拓展控制模块,还能将Python置入到C/C++程序流程中,给自己的系统软件加上动态性拓展和动态性程序编写的工作能力。

    为了方便运用Python語言,不论是应用Python語言自身,還是将Python与C/C++互动应用,深刻领会Python的运作基本原理全是十分关键的。

    做为流行的动态性語言,Python不但简易易懂、移植性好,并且有着强劲丰富多彩的库的适用。除此之外,Python强劲的扩展性,让开发者既能够 容易地运用C/C++撰写Python的拓展控制模块,还能将Python置入到C/C++程序流程中,给自己的系统软件加上动态性拓展和动态性程序编写的工作能力。

    为了方便运用Python語言,不论是应用Python語言自身,還是将Python与C/C++互动应用,深刻领会Python的运作基本原理全是十分关键的。这书以CPython为科学研究另一半,在C编码一級,认真细致地剖析了Python的保持。书中不但包含了对很多Python内嵌另一半的剖析,更将很多的篇数用以对Python虚拟机及Python高級特点的剖析。根据该书,用户可以深入地了解Python中的通常关系式、控制结构、出现异常体制、类体制、多核体制、控制模块的动态性载入体制、运行内存管理模式等关键技术的运作基本原理,一起,这书所表明的动态性語言的关键技术针对了解别的动态性語言,如Javascript、Ruby等也是很大的实用价值。

    这书合适于Python程序猿、动态性語言发烧友、C程序猿阅读文章。

    目录

    • 第0章 PYTHON源码剖析--编译PYTHON
    • 0.1 PYTHON总体架构
    • 0.2 PYTHON源代码的组织
    • 0.3 WINDOWS环境下编译PYTHON
    • 0.4 UNIX/LINUX环境下编译PYTHON
    • 0.5 修改PYTHON源代码
    • 0.6 通往PYTHON之路
    • 0.7 一些注意事项
    • 第1部分 PYTHON内建对象
    • 第1章 PYTHON对象初探
    • 1.1 PYTHON内的对象
    • 1.1.1 对象机制的基石——PyObject
    • 1.1.2 定长对象和变长对象
    • 1.2 类型对象
    • 1.2.1 对象的创建
    • 1.2.2 对象的行为
    • 1.2.3 类型的类型
    • 1.3 PYTHON对象的多态性
    • 1.4 引用计数
    • 1.5 PYTHON对象的分类
    • 第2章 PYTHON中的整数对象
    • 2.1 初识PYINTOBJECT对象
    • 2.2 PYINTOBJECT对象的创建和维护
    • 2.2.1 对象创建的3种途径
    • 2.2.2 小整数对象
    • 2.2.3 大整数对象
    • 2.2.4 添加和删除
    • 2.2.5 小整数对象池的初始化
    • 2.3 HACK PYINTOBJECT
    • 第3章 PYTHON中的字符串对象
    • 3.1 PYSTRINGOBJECT与PYSTRING_TYPE
    • 3.2 创建PYSTRINGOBJECT对象
    • 3.3 字符串对象的INTERN机制
    • 3.4 字符缓冲池
    • 3.5 PYSTRINGOBJECT效率相关问题
    • 3.6 HACK PYSTRINGOBJECT
    • 第4章 PYTHON中的LIST对象
    • 4.1 PYLISTOBJECT对象
    • 4.2 PYLISTOBJECT对象的创建与维护
    • 4.2.1 创建对象
    • 4.2.2 设置元素
    • 4.2.3 插入元素
    • 4.2.4 删除元素
    • 4.3 PYLISTOBJECT对象缓冲池
    • 4.4 HACK PYLISTOBJECT
    • 第5章 PYTHON中的DICT对象
    • 5.1 散列表概述
    • 5.2 PYDICTOBJECT
    • 5.2.1 关联容器的entry
    • 5.2.2 关联容器的实现
    • 5.3 PYDICTOBJECT的创建和维护
    • 5.3.1 PyDictObject对象创建
    • 5.3.2 PyDictObject中的元素搜索
    • 5.3.3 插入与删除
    • 5.3.4 操作示例
    • 5.4 PYDICTOBJECT对象缓冲池
    • 5.5 HACK PYDICTOBJECT
    • 第6章 简单的PYTHON模拟——SMALL PYTHON
    • 6.1 SMALL PYTHON
    • 6.2 对象机制
    • 6.3 解释过程
    • 6.4 交互式环境
    • 第2部分 PYTHON虚拟机
    • 第7章 PYTHON的编译结果--CODE对象与PYC文件
    • 7.1 PYTHON程序的执行过程
    • 7.2 PYTHON编译器的编译结果--PYCODEOBJECT对象
    • 7.2.1 PyCodeObject对象与pyc文件
    • 7.2.2 Python源码中的PyCodeObject
    • 7.2.3 pyc文件
    • 7.2.4 在Python中访问PyCodeObject对象
    • 7.3 PYC文件的生成
    • 7.3.1 创建pyc文件的具体过程
    • 7.3.2 向pyc文件写入字符串
    • 7.3.3 一个PyCodeObject,多个PyCodeObject
    • 7.4 PYTHON的字节码
    • 7.5 解析PYC文件
    • 第8章 PYTHON虚拟机框架
    • 8.1 PYTHON虚拟机中的执行环境
    • 8.1.1 Python源码中的PyFrameObject
    • 8.1.2 PyFrameObject中的动态内存空间
    • 8.1.3 在Python中访问PyFrameObject对象
    • 8.2 名字、作用域和名字空间
    • 8.2.1 Python程序的基础结构——module
    • 8.2.2 约束与名字空间
    • 8.2.3 作用域与名字空间
    • 8.3 PYTHON虚拟机的运行框架
    • 8.4 PYTHON运行时环境初探
    • 第9章 PYTHON虚拟机中的一般表达式
    • 9.1 简单内建对象的创建
    • 9.2 复杂内建对象的创建
    • 9.3 其他一般表达式
    • 9.3.1 符号搜索
    • 9.3.2 数值运算
    • 9.3.3 信息输出
    • 第10章 PYTHON虚拟机中的控制流
    • 10.1 PYTHON虚拟机中的IF控制流
    • 10.1.1 研究对象--if_control.py
    • 10.1.2 比较操作
    • 10.1.3 指令跳跃
    • 10.2 PYTHON虚拟机中的FOR循环控制流
    • 10.2.1 研究对象——for_control.py
    • 10.2.2 循环控制结构的初始化
    • 10.2.3 迭代控制
    • 10.2.4 终止迭代
    • 10.3 PYTHON虚拟机中的WHILE循环控制结构
    • 10.3.1 研究对象——while_control.py
    • 10.3.2 循环终止
    • 10.3.3 循环的正常运转
    • 10.3.4 循环流程改变指令之continue
    • 10.3.5 循环流程改变指令之break
    • 10.4 PYTHON虚拟机中的异常控制流
    • 10.4.1 Python中的异常机制
    • 10.4.2 Python中的异常控制语义结构
    • 第11章 PYTHON虚拟机中的函数机制
    • 11.1 PYFUNCTIONOBJECT对象
    • 11.2 无参函数调用
    • 11.2.1 函数对象的创建
    • 11.2.2 函数调用
    • 11.3 函数执行时的名字空间
    • 11.4 函数参数的实现
    • 11.4.1 参数类别
    • 11.4.2 位置参数的传递
    • 11.4.3 位置参数的访问
    • 11.4.4 位置参数的默认值
    • 11.4.5 扩展位置参数和扩展键参数
    • 11.5 函数中局部变量的访问
    • 11.6 嵌套函数、闭包与DECORATOR
    • 11.6.1 实现闭包的基石
    • 11.6.2 闭包的实现
    • 11.6.3 Decorator
    • 第12章 PYTHON虚拟机中的类机制
    • 12.1 PYTHON中的对象模型
    • 12.1.1 对象间的关系
    • 12.1.2 和
    • 12.2 从TYPE对象到CLASS对象
    • 12.2.1 处理基类和type信息
    • 12.2.2 处理基类列表
    • 12.2.3 填充tp_dict
    • 12.3 用户自定义CLASS
    • 12.3.1 创建class对象
    • 12.4 从CLASS对象到INSTANCE对象
    • 12.5 访问INSTANCE对象中的属性
    • 12.5.1 instance对象中的__dict__
    • 12.5.2 再论descriptor
    • 12.5.3 函数变身
    • 12.5.4 无参函数的调用
    • 12.5.5 带参函数的调用
    • 12.5.6 Bound Method和Unbound Method
    • 12.6 千变万化的DESCRIPTOR
    • 第3部分 PYTHON高级话题
    • 第13章 PYTHON运行环境初始化
    • 13.1 线程环境初始化
    • 13.1.1 线程模型回顾
    • 13.1.2 初始化线程环境
    • 13.2 系统MODULE初始化
    • 13.2.1 创建__builtin__ module
    • 13.2.2 创建sys module
    • 13.2.3 创建__main__ module
    • 13.2.4 设置site-specific的module的搜索路径
    • 13.3 激活PYTHON虚拟机
    • 13.3.1 交互式运行方式
    • 13.3.2 脚本文件运行方式
    • 13.3.3 启动虚拟机
    • 13.3.4 名字空间
    • 第14章 PYTHON模块的动态加载机制
    • 14.1 IMPORT前奏曲
    • 14.2 PYTHON中IMPORT机制的黑盒探测
    • 14.2.1 标准import
    • 14.2.2 嵌套import
    • 14.2.3 import package
    • 14.2.4 from与import
    • 14.2.5 符号重命名
    • 14.2.6 符号的销毁与重载
    • 14.3 IMPORT机制的实现
    • 14.3.1 解析module/package树状结构
    • 14.3.2 加载module/pakcage
    • 14.3.3 from与import
    • 14.4 PYTHON中的IMPORT操作
    • 14.4.1 import module
    • 14.4.2 import package
    • 14.4.3 from & import
    • 14.4.4 import & as
    • 14.4.5 reload
    • 14.4.6 内建module:imp
    • 14.5 与MODULE有关的名字空间问题
    • 第15章 PYTHON多线程机制
    • 15.1 GIL与线程调度
    • 15.2 初见PYTHON THREAD
    • 15.3 PYTHON线程的创建
    • 15.3.1 建立多线程环境
    • 15.3.2 创建线程
    • 15.4 PYTHON线程的调度
    • 15.4.1 标准调度
    • 15.4.2 阻塞调度
    • 15.5 PYTHON子线程的销毁
    • 15.6 PYTHON线程的用户级互斥与同步
    • 15.6.1 用户级互斥与同步
    • 15.6.2 Lock对象
    • 15.7 高级线程库——THREADING
    • 15.7.1 Threading Module概述
    • 15.7.2 Threading的线程同步工具
    • 15.7.3 Threading中的Thread
    • 第16章 PYTHON的内存管理机制
    • 16.1 内存管理架构
    • 16.2 小块空间的内存池
    • 16.2.1 Block
    • 16.2.2 Pool
    • 16.2.3 arena
    • 16.2.4 内存池
    • 16.3 循环引用的垃圾收集
    • 16.3.1 引用计数与垃圾收集
    • 16.3.2 三色标记模型
    • 16.4 PYTHON中的垃圾收集
    • 16.4.1 可收集对象链表
    • 16.4.2 分代的垃圾收集
    • 16.4.3 Python中的标记-清除方法
    • 16.4.4 垃圾收集全景
    • 16.4.5 Python中的gc模块
    • 16.4.6 总结

    上一篇:操作系统设计与实现(上下册)  下一篇:集体智慧编程

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    Python相关电子书
    学习笔记
    网友NO.437692

    Python动刷新抢12306火车票的代码(附源码)

    用python另一个抢票神器,你get到了吗? 2017年时间飞逝,转眼间距离2018年春节还有不到1个月的时间,还在为抢不到火车票发愁吗?作为程序员的我们撸一个抢票软件可好? 难以想象的数据,预示着今年春运回程和返程车票 购买难度将进一步加大… 抢购车票怕是比李白跨越“蜀道”的难度还大哦~ 当你想查询一下火车票信息的时候,还在为打开无响应的12306官网和广告n秒的APP吗而懊恼吗? 不如用 Python 写一个命令行版的火车票查看器, 只要在命令行敲一行命令就能获得你想要的火车票信息! 效果截图 是由Python开发的开放源代码Web应用程序测试工具。它可以帮助您自动浏览站点并与之交互。当碎片执行时,它会自动打开指定的浏览器并访问指定的URL。然后,你模拟的任何行为都会自动完成。你只需要坐在电脑前,像看电影,看屏幕上的每一个动作,然后收集结果。 12306个用于抢劫门票的Python代码片段 1、自动登录功能: 2、购票的功能 完整的源代码 总结 以上所述是小编给大家介绍的Python动刷新抢12306火车票,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持! ……

    网友NO.243096

    神经网络python源码分享

    神经网络的逻辑应该都是熟知的了,在这里想说明一下交叉验证 交叉验证方法: 看图大概就能理解了,大致就是先将数据集分成K份,对这K份中每一份都取不一样的比例数据进行训练和测试。得出K个误差,将这K个误差平均得到最终误差 这第一个部分是BP神经网络的建立 参数选取参照论文:基于数据挖掘技术的股价指数分析与预测研究_胡林林 import mathimport randomimport tushare as tsimport pandas as pdrandom.seed(0)def getData(id,start,end): df = ts.get_hist_data(id,start,end) DATA=pd.DataFrame(columns=['rate1', 'rate2','rate3','pos1','pos2','pos3','amt1','amt2','amt3','MA20','MA5','r']) P1 = pd.DataFrame(columns=['high','low','close','open','volume']) DATA2=pd.DataFrame(columns=['R']) DATA['MA20']=df['ma20'] DATA['MA5']=df['ma5'] P=df['close'] P1['high']=df['high'] P1['low']=df['low'] P1['close']=df['close'] P1['open']=df['open'] P1['volume']=df['volume'] DATA['rate1']=(P1['close'].shift(1)-P1['open'].shift(1))/P1['open'].shift(1) DATA['rate2']=(P1['close'].shift(2)-P1['open'].shift(2))/P1['open'].shift(2) DATA['rate3']=(P1['close'].shift(3)-P1['open'].shift(3))/P1['open'].shift(3) DATA['pos1']=(P1['close'].shift(1)-P1['low'].shift(1))/(P1['high'].shift(1)-P1['low'].shift(1)) DATA['pos2']=(P1['close'].shift(2)-P1['low'].shift(2))/(P1['high'].shift(2)-P1['low'].shift(2)) DATA['pos3']=(P1['close'].shift(3)-P1['low'].shift(3))/(P1['high'].shift(3)-P1['low'].shift(3)……

    网友NO.680737

    Python tkinter实现的图片移动碰撞动画效果【附源码下载】

    本文实例讲述了Python tkinter实现的图片移动碰撞动画效果。分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码如下: #!/usr/bin/python# -*- coding: utf-8 -*-import timetry: from tkinter import *except ImportError: #Python 2.x PythonVersion = 2 from Tkinter import * from tkFont import Font from ttk import * from tkMessageBox import * import tkFileDialogelse: #Python 3.x PythonVersion = 3 from tkinter.font import Font from tkinter.ttk import * from tkinter.messagebox import *# 配置# 要打开的图像image1 = "open.gif"# 初始坐标x0 = 50.0y0 = 50.0# 列表将包含所有的x和y坐标.到目前为止,他们只包含初始坐标x = [x0]y = [y0]# 每次移动的速度或距离vx = 1.0# x 速度vy = 0.5# y 速度# 边界,这里要考虑到图片的大小,要预留一半的长和宽x_min = 46.0y_min = 46.0x_max = 754.0y_max = 554.0# 图片间隔时间,要动画效果,此处设为每秒40帧sleep_time = 0.025# 运行步数range_min = 1range_max = 2000# 创建500次的x和y坐标for t in range(range_min, range_max): # 新坐标等于旧坐标加每次移动的距离 new_x = x[t - 1] + vx new_y = y[t - 1] + vy # 如果已经越过边界,反转方向 if new_x = x_max or new_x = x_min: vx = vx * -1.0 if new_y = y_max or new_y = y_min: vy = vy * -1.0 # 添加新的值到列表 x.append(new_x) y.append(new_y)# 开始使用tk绘图root = Tk()root.title("码农之家 tkinter动画测试") #在这里修改窗口的……

    网友NO.952731

    Python中getpass模块无回显输入源码解析

    本文主要讨论了python中getpass模块的相关内容,具体如下。 getpass模块 昨天跟学弟吹牛b安利Python标准库官方文档的时候偶然发现了这个模块。仔细一看内容挺少的,只有两个主要api,就花了点时间阅读了一下源码,感觉挺实用的,在这安利给大家。 getpass.getpass(prompt='Password: ‘, stream=None) 调用该函数可以在命令行窗口里面无回显输入密码。参数prompt代表提示字符串,默认是'Password: ‘。在Unix系统中,stream默认为当前控制的终端。在Windows系统里stream参数会被忽略掉,默认使用stdin。如果无法正常使用getpass,会打印错误信息,然后模块会使用有回显的模式读取数据。 import getpass passwd = getpass.getpass()Password: print(passwd)ganziqim getpass.getuser() 返回当前用户名。这个函数会按顺序检查环境变量LOGNAME, USER, LNAME和USERNAME。返回第一个非空的值。如果检查不到非空的值,模块会尝试导入pwd模块,如果系统支持pwd模块,会返回通过pwd模块获取的用户名,否则报错。 getpass.getuser()'ganzi' 一些细节 1.getpass模块内部其实实现了unix_getpass、win_getpass和fallback_getpass三个函数。在模块被导入之后会首先对用户使用的系统进行检查,将相应的函数赋值给getpass。如果检查失败,则将fallback_getpass赋值给getpass。 2.win_getpass使用msvcrt.getwch()获取无回显输入。 3.fallb……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明