Python源代码剖析笔记3-Python执行原理初探 本文简书地址:http://www.jianshu.com/p/03af86845c95 之前写了几篇源代码剖析笔记,然而慢慢觉得没有从一个宏观的角度理解python执行原理的话,从底向上分析未免太easy让人疑惑.不如先从宏观上对python执行原理有了一个基本了解,再慢慢探究细节.这样或许会好非常多. 这也是近期这么久没有更新了笔记了,一直在看源代码剖析书籍和源代码.希望能够从一个宏观层面理清python执行原理.人说读书从薄读厚,再从…
SpringBoot-02 运行原理初探 本篇文章根据b站狂神编写 pom.xml 2.1.父依赖 其中它主要是依赖一个父项目,主要是管理项目的资源过滤及插件! <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</versio…
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1. Python虚拟机会从编译得到的PyCodeObject对象中依次读入每一条字节码指令. 并在当前的上下文环境中运行这条字节码指令. Python虚拟机实际上是在模拟操作中运行文件的过程 PyCodeObject对象中包括了字节码指令以及程序的全部静态信息,但没有包括 程序执行时的动态信息--执行环境(PyFrameObject) 2.Python源代码中的PyFrameObject…
本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.python的运行过程 1)对python源码进行编译.产生字节码 2)将编译结果交给python虚拟机.由虚拟机依照顺序一条一条地运行字节码,产生运行结果 2.Python编译器的编译结果--PyCodeObject对象 Python编译器的编译结果中包括了字符串.常量值.字节码等在源码中出现的一切实用的静态信息. 在Python执行期间,这些静态信息被PyCodeObject对象中…
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:love_cat # python的函数是如何工作的 # 比方说我们定义了两个函数 def foo(): bar() def bar(): pass # 首先python解释器(python.exe)会用一个叫做PyEval_EvalFrameEx()的C语言函数去执行foo,所以python的代码是运行在C程序之上的 # 当运行foo函数时,会首先创建一个栈帧(stack frame),…
001.python前言 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出处:商业用途请联系本人(gaoyang1019@hotmail.com)获取许可. ❞ 关于python优缺点的分析 python可读性高,移植性较好 代码简洁,完成同样的问题相比java和C++,代码量是其的1/5~1/3 效率相对C语言叫差,但也不是那么差 开源,社区活跃度很高,官方和民间提供了很…
python核心数据类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出处:商业用途请联系本人(gaoyang1019@hotmail.com)获取许可. ❞ 先来解决一个书上没搞懂的东西,「字面量」 百度百科给出的字面量的解释:"在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)." 我表示没看懂,然后又…
相信有好多朋友们都是第一次了解python吧,可能大家也听过或接触过这个编程语言.那么到底什么是python呢?它在什么机缘巧合下诞生的呢?又为什么在短短十几年时间内就流行开来呢?就请大家带着疑问,让我们来探索python的奥秘吧! 一:python发展史与优缺点 1.发展史 python,英文翻译为巨蟒,爬虫.是荷兰计算机学家吉多·范罗苏姆(著名的G叔),在1989年圣诞节期间,为了打发圣诞节的无趣,开发的一个脚本解释程序,结合了Unix shell和C的习惯..而python这个名字就是取自…
这篇笔记主要是从Python官网的Tutorial上截取下来,再加上个人理解 1. 在交互模式下,下划线'_'还可以表示上一步的计算结果 2.引号转义问题. 从下图总结的规律是,字符串里的引号如果和引住字符串的引号是相同的,字符串里的引号需要转义.不同则不需要. 最后一个例子看似没变化,加上print()就不同了 加print()和不加print()的区别: Print() function produces a more readable output, by omitting the enc…
狂神说SpringBoot系列连载课程,通俗易懂,基于SpringBoot2.2.5版本,欢迎各位狂粉转发关注学习. 微信公众号:狂神说(首发)    Bilibili:狂神说Java(视频) 未经作者授权,禁止转载 运行原理探究 我们之前写的HelloSpringBoot,到底是怎么运行的呢,Maven项目,我们一般从pom.xml文件探究起: pom.xml 父依赖 其中它主要是依赖一个父项目,主要是管理项目的资源过滤及插件! <parent> <groupId>org.spr…
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.Python虚拟机在运行函数调用时会动态地创建新的 PyFrameObject对象, 这些PyFrameObject对象之间会形成PyFrameObject对象链,模拟x86平台上执行时栈 2.PyFuctionObject对象 typedef struct { PyObject_HEAD PyObject *func_code: //相应函数编译后的PyCodeObject对象 Py…
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zhsenl/article/details/33747209 本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.线程环境初始化 Py_InitializeEx,Python会首先调用 PyInterpreterState_New创建一个崭新的PyInterpreterState对象. 创建了PyInterpreterState(进程状态…
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.PyListObject对象 --> 变长可变对象,可看作vector<PyObject *> typedef struct{ PyObject_VAR_HEAD //当中的ob_size表示实际被使用的内存的数量 PyObject **ob_item;//ob_item为指向元素列表的指针,实际上,Python中的list[0]就是ob_item[0] int allocat…
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.PyDictObject对象 -->  C++ STL中的map是基于RB-tree的,搜索时间复杂度是O(logN) PyDictObject採用了hash表,时间复杂度是O(1) typedef struct{ Py_ssize_t me_hash; //me_key的hash值,避免每次查询都要又一次计算一遍hash值 PyObject *me_key; PyObject *me…
进程和线程究竟是什么?如何使用进程和线程?什么场景下需要使用进程和线程?协程又是什么?协程和线程的关系和区别有哪些? 程序切换-CPU时间的分配 首先,我们的任何一个程序都需要运行在一个操作系统中,如 Windows XP, RedHat Linux, FreeBSD, AIX 等: 其次,在操作系统中运行的程序,不止一个,而是成百上千个不同功能的程序,如键盘驱动,显示器驱动,HTTP服务,游戏,聊天,网页......: 最后,CPU等资源是有限的,在这成百上千个程序中,不可能每个程序都占用一个…
多线程理解 多线程是多个任务同时运行的一种方式.比如一个循环中,每个循环看做一个任务,我们希望第一次循环运行还没结束时,就可以开始第二次循环,用这种方式来节省时间. python中这种同时运行的目的是最大化利用CPU的计算能力,将很多等待时间利用起来.这也说明如果程序耗时不是因为等待时间,而是任务非常多,就是要计算那么久,则多线程无法改善运行时间. 更多有关多线程理解的内容可以参考下面资料 廖雪峰教程 知乎回答 百度一下还有非常多的说明,这里不再赘述 简单使用 先看下面这个函数 import t…
#!/usr/bin/env python# -*- coding: utf-8 -*- class student: def __init__(self, name_list): self.student_name_list = name_list def __getitem__(self, item): return self.student_name_list[item] stu = student(['tom', 'bob', 'jane', ])stu = stu[:2]l = len…
大家好,本文我将继续来剖析SpringCloud中负载均衡组件Ribbon的源码.本来我是打算接着OpenFeign动态代理生成文章直接讲Feign是如何整合Ribbon的,但是文章写了一半发现,如果不把Ribbon好好讲清楚,那么有些Ribbon的细节理解起来就很困难,所以我还是打算单独写一篇文章来剖析Ribbon的源码,这样在讲Feign整合Ribbon的时候,我就不再赘述这些细节了.好了,话不多说,直接进入主题. 一.Ribbon的核心组件 1.Server 这是个很简单的东西,就是服务实…
1. 从一个Action开始 1.1 创建 在Scene里写一个Sprite,并添加Action: Sprite *sp = Sprite::create("m1.png"); MoveBy *mb = MoveBy::create(, Vec2(,)); sp->runAction(mb); this->addChild(sp); 先通过create方法创建Action,之后Sprite和Action通过runAction方法产生联系. create方法坐标参数被转为Z为…
1 def f(a, L=[]): 2 L.append(a) 3 return L 4 5 print f(5) 6 print f(2) 输出 1 def f(a, L=None): 2 if L is None: 3 L = [] 4 L.append(a) 5 return L 6 7 print f1(5) 8 print f1(2) 输出 上面两个函数的区别,f()输出的结果是累加的,f1()输出的结果是独立的 If you don't want the default to be…
repr(x).rjust(n)  左侧空格填充,右侧列对齐,str()和repr()是一种输出,也可不用,直接x.rjust() repr(x).ljust(n)  右侧空格填充,左侧列对齐 repr(x).rjust(n)  两侧空格填充,居中列对齐 x输出字符串,n位数 1 for x in range(1, 5): 2 print(repr(x).ljust(5), repr(x*x).center(5),repr(x*x*x).rjust(5)) 3 4 # 输出 5 ('1 ', '…
1.如何认识可视化? 图形总是比数据更加醒目.直观.解决统计回归问题,无论在分析问题的过程中,还是在结果的呈现和发表时,都需要可视化工具的帮助和支持. 需要指出的是,虽然不同绘图工具包的功能.效果会有差异,但在常用功能上相差并不是很大.与选择哪种绘图工具包相比,更重要的是针对不同的问题,需要思考选择什么方式.何种图形去展示分析过程和结果.换句话说,可视化只是手段和形式,手段要为目的服务,形式要为内容服务,这个关系一定不能颠倒了. 因此,可视化是伴随着分析问题.解决问题的过程而进行思考.设计和实现…
1.最优化问题建模 最优化问题的三要素是决策变量.目标函数和约束条件. (1)分析影响结果的因素是什么,确定决策变量 (2)决策变量与优化目标的关系是什么,确定目标函数 (3)决策变量所受的限制条件是什么,确定约束条件 最优化问题的建模,通常按照以下步骤进行: (1)问题定义,确定决策变量.目标函数和约束条件: (2)模型构建,由问题描述建立数学方程,并转化为标准形式的数学模型: (3)模型求解,用标准模型的优化算法对模型求解,得到优化结果: (4)模型检验,统计检验和灵敏度分析. 欢迎关注 Y…
换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4.Python学习-字符串 5.Python学习-列表 6.Python学习-字典 7.Python学习-元组与集合 8.Python学习-函数 9.Python学习-装饰器 10.Python学习-模块与包 11.Python学习-文件操作 12.Python学习-面向对象学习上 13.Python…
1.关于 StatsModels statsmodels(http://www.statsmodels.org)是一个Python库,用于拟合多种统计模型,执行统计测试以及数据探索和可视化. 2.文档 最新版本的文档位于: https://www.statsmodels.org/stable/ 欢迎关注 Youcans 原创系列,每周更新数模笔记 Python数模笔记-PuLP库 Python数模笔记-StatsModels统计回归 Python数模笔记-Sklearn Python数模笔记-N…
在正式开始学习Python之前我们需要先配置好Python环境. Python Python可以从Python官方网站上,选择适合你的操作系统的版本下载.下载完之后,运行下载的可执行文件进行安装. 这里以Windows为例. Windows 1. 进入上文的Python官方网站的下载页面. 2. 选择一个版本进行下载(建议选择最新版,目前是3.6.1),进入如下页面. 3. 按照需要选择并下载.建议如果是32位Windows系统,选择Windows x86 executable installe…
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,谈谈 Python 程序的运行原理 这篇文章准确说是『Python 源码剖析』的读书笔记,整理完之后才发现很长,那就将就看吧. 1. 简单的例子 先从一个简单的例子说起,包含了两个文件 foo.py 和 demo.py [foo.py] def add(a, b): return a + b [demo.py] import foo a = [1, 'python'] a =…
近期为了面试想要了解下python的运行原理方面的东西,奈何关于python没有找到一本类似于深入理解Java虚拟机方面的书籍,找到了一本<python源码剖析>电子书,但是觉得相对来说最近还是不打算用大布头时间研究这本书,只能先找来几篇相关的博客来阅读,记录如下: 一.过程概述 1.python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机会从编译得到的PyCodeObject对象中一条一条执行字节码指令,并在当前的上下文环境中执行这条字节码指令,从而完成程序的执行.Pyt…
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark SQL相关的知识,如果对Spark不熟的同学可以先看看之前总结的两篇文章: [原]Learning Spark (Python版) 学习笔记(一)----RDD 基本概念与命令 [原]Learning Spark (Python版) 学习笔记(二)----键值对.数据读取与保存.共享特性 #####…
前期工作已经准备好后,可以打开IDE编辑器了,你可以选择python自带的IDLE,也可以选择第三方的,这里我使用pycharm--一个专门为python而生的IDE 按照惯例,第一个python代码打印一个所有开发语言里入门必学"hello,world"?no,你错了,我偏不 第一行是编码,utf-8这是国际使用标准,如果我不加的话,很容易出错 第二行print(打印的意思)语句,是python的关键词语句,可以打印一个字符,可以打印一个数字,可以打印任何你想打印的东西,只要你想让它…