- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 Python多线程
1.什么是多线程线程,有时被称为轻量进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程不拥有私有的系统资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。线程是程序中一个单一的顺序控制流程。...
2019-06-30 12:00:00
141
原创 Python反射
1、什么是反射 在程序开发中,常常会遇到这样的需求: 在执行对象中的某个方法,或者在调用对象的某个变量,或是需要对对象的某个字段赋值,而方法名或是字段名在编码代码时并不能确定,需要通过参数传递字符串的形式输入。 举个具体的例子:当我们需要实现一个通用的DBM框架时,可能需要对数据对象的字段赋值,但我们无法预知用到这个框架的数据对象都有些什么字段,换言之,我们在写框架的...
2019-05-24 17:55:40
314
原创 Python反射
Python反射 1. 什么是反射在程序开发中,常常会遇到这样的需求:在执行对象中的某个方法,或者在调用对象的某个变量,或是需要对对象的某个字段赋值,而方法名或是字段名在编码代码时并不能确定,需要通过参数传递字符串的形式输入。举个具体的例子:当我们需要实现一个通用的DBM框架时,可能需要对数...
2019-05-24 16:47:00
161
原创 OpenStack快照分析:(三)从磁盘启动云主机离线(在线)快照分析
<!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;} @font-face {font-family:宋体; panose-1:2 1 6 0 3...
2018-09-27 15:12:00
474
原创 OpenStack快照分析:(二)从镜像启动的云主机离在线快照分析
从镜像启动的云主机在线快照 之前介绍了‘镜像启动云主机的离线快照’,接下来介绍‘镜像启动云主机的在线快照’,在线快照的处理与离线快照的处理大体上一样,只是nova-compute在处理的时候有差异,差别代码如下(代码路径:nova/virt/libvirt/driver.py/LibvirtDriver.snapshot): def...
2018-09-27 15:11:00
417
原创 OpenStack快照分析:(一)从镜像启动的云主机离线快照分析
<!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;} @font-face {font-family:宋体; panose-1:2 1 6 0 3...
2018-09-27 14:32:00
724
转载 Python元编程
Python的第n任助手正式上岗了。 “老大,有程序员要创建对象,怎么办?”我向Python解释器发出了预警,上岗后头一次遇到这种情况,我有点紧张。。。 1 class Person: 2 def sayHello(self,name): 3 print("hello,"+name)&#...
2018-09-18 16:13:00
518
原创 Python源码阅读:对象
py一切皆对象的实现 Python中对象分为两类: 定长(int等), 非定长(list/dict等) 所有对象都有一些相同的东西, 源码中定义为PyObject和PyVarObject, 两个定义都有一个共同的头部定义PyObject_HEAD(其实PyVarObject有自己的头部定义PyObject_VAR_HEA...
2018-09-18 15:57:00
200
原创 docker-compose创建zookeeper集群
1、获取zookeeper的镜像 docker pull zookeeper 当出现如下结果时, 表示镜像已经下载完成了: >>> docker pull zookeeper Using default tag: latest latest: Pulling ...
2018-09-18 10:09:00
714
原创 Hygieia
文主要是针对Hygieia的基本组件的搭建过程,包括源码编译环境的搭建、源码编译成jar包、服务打包成docker镜像、运行DB、API、UI服务,以下所有操作本人均已验证,如有问题欢迎指正,谢谢!(本文运行环境为安装了docker的centos 7。) 1、准备环境(Centos7) 1.1 安装JDK (1) 下载JDK安装包,...
2018-08-16 16:57:00
776
原创 Python源码阅读:type
首先看一个例子: 1 >>> a = 1 2 >>> a 3 1 4 >>> type(a) 5 <type 'int'> 6 >>>
2018-08-06 14:30:00
461
原创 Docker学习——Docker架构
本文参考:SzeCheng的博客:https://www.cnblogs.com/SzeCheng/p/6822905.html,以及海牛部落-青牛,http://hainiubl.com/topics/13 什么是docker Docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google...
2018-07-24 15:50:00
240
原创 Python最简编码规范
0、前言本文是阅读《Python Coding Rule》之后总结的最为精华及简单的编码规范,根据每个人不同喜好有些地方会有不同的选择,我只是做了对自己来说最简单易行的选择,仅供大家参考。1、重要原则保持风格的一致性很重要,但最重要的是:知道何时不一致打破一条既定规则的两个好理由:当应用规则会导致代码可读性下降(可读性赛高)为了和周围代码保持一致而...
2018-07-18 16:24:00
186
原创 Python元类
学懂元类,首先要知道两句话: 道生一,一生二,二生三。三生万物 我是谁?我从哪里来?我要到那里去? 在Python的世界里,拥有一个永恒的道:type,如此广袤无垠的Python生态圈,都是由type产生出来的。 道生一,一生二,二生三,三生万物。 道:即就是type...
2018-07-11 21:54:00
178
原创 Python接口与归一化设计
1.什么是接口(interface) 接口(interface)是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来装封一定功能的集合。它好比一个模板,在其中定义了对象必须实现的成员,通过类或结构来实现它。接口不能直接实例化,接口不能包含成员的任何代码,只定义成员本身。接口成员的具体代码由实现接口的类提供。 2.归一化&...
2018-07-09 10:55:00
185
原创 如何使用yum下载rpm包
yum是基于Red Hat发行版本Linux(如CentOS、Fedora、RHEl)上的默认包管理器。使用yum,你可以安装或者更新一个RPM包,并且他会自动解决包依赖关系。但是如果你只想将一个RPM包下载到你的系统上该怎么办呢? 例如,你可能想要获取一些RPM包在以后使用,或者将他们安装在另外的机器上。 1、配置yum.con...
2018-07-03 11:53:00
688
原创 浅谈Python的with语句
1. 引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入后才可以使用),从 2.6 版本开始缺省可用。with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件...
2018-07-01 17:40:00
134
原创 搞懂了这几点,你就学会了Web编程
整理参考自《刘欣 程序猿》 1、理解浏览器/服务器结构 (B/S)B/S 是从 90年代的客户端/服务器端发展而来, 共同点都是由一个(或一组)服务器来服务多个客户端。 差别在于:首先,C/S结构的客户端可能是由不同语言编写的,例如VB,Delphi, PowerBuilder等, B/S结构中浏览器成为了一个通用的客户端, 程序以Web的...
2018-04-30 20:38:00
305
原创 网络虚拟化技术大观
网络虚拟化(Network Virtualization)就是搭建一个与物理网络拓扑结构不同的虚拟网络。例如公司在世界各地有多个办事处,但希望公司的内部网络是一个整体,就需要网络虚拟化技术。 从 NAT 说起 Capture 假设北京办事处的一台机器 IP 是 10.0.0.1(这是一个内网 IP,不可以在 Internet 上使用)...
2018-04-23 23:52:00
998
原创 Python装饰器
实例场景: 贵公司已经上线了一款产品,但是在发布后用户使用一段时间之后,发现产品可以做一下优化,已能达到更好的用户体验,作为开发人员的你该怎么做? 情景分析: 产品已经上线,不能轻易修改产品的代码 以最小的代价实现 实现过程分析: 假设我们需要在产品的某些特定的函数中增加一...
2018-04-22 23:33:00
168
原创 虚拟化技术大观
本文参考自:Bojie Li:https://ring0.me/2014/12/virtualization-overview/ 虚拟化技术大家都不陌生,我们大都使用过诸如 VMWare、VirtualBox 的虚拟机软件。一些人认为,虚拟化技术是近几年跟着云计算的潮流才火起来的,十年前只是桌面用户测试其他操作系...
2018-04-22 10:15:00
394
原创 Python数据结构之----数据存储与深浅拷贝
要深入的了解python的数据结构,就需要先了解一些Python中数据存储的知识,进而理解Python中深浅拷贝的原理,接下来我们进一步的来学习。 一、Python的数据存储 在高级语言(C、C++、Java、Python)中,变量是对内存及其地址的抽象。在Python里,一切变量都是对象,变量的存储采用了引用的方式,存储的只是一个变量...
2018-04-17 23:55:00
227
原创 python的内存管理机制
较浅的层面来说,Python的内存管理机制主要分为以下三个方面: 垃圾回收 引用计数 内存池机制 一、垃圾回收: Python不像C++、Java等语言,Python可以不用事先声明变量的类型,而可以直接对变量进行赋值,对于Python语言来说,对象的类型和内存都是在运行的时候确定的。这...
2018-04-14 23:29:00
124
原创 python可变参数*args 和 **kwargs
可变变量并不是一定要写成*args 和**kwargs,只有变量名称前的*才是必须的,如果你喜欢,可以写成*var和**vars,而写成*args 和**kwargs只是一个通俗的命名约定。*args的用法*args和**kwargs主要用于函数定义。 你可以将不定数量的参数传递给一个函数。可以预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景...
2018-04-02 20:33:00
133
原创 Python的hasattr() getattr() setattr() 函数使用方法详解
有以下代码:class Student(): name = "xiaohua" def run(self): print "Hello world"stu = Student()print hasattr(stu, "name")现在想判断类Student中是否包含某属性或者方法,或者设置属性,可用以下方法:1、hasa...
2018-04-02 20:31:00
131
原创 Map、Filter、Reduce简介
MapMap会将一个函数映射到一个输入列表的所有元素上。这是它的规范:map(function_to_apply, list_of_inputs)大多数时候,我们要把列表中所有元素一个个地传递给一个函数,并收集输出。比方说:items = [1, 2, 3, 4, 5]squared = []for i in items: squared.ap...
2018-03-24 00:33:00
115
原创 Python生成器
生成器也是一种迭代器,与其他迭代器不同的是,生成器每次只进行一次迭代,只返回一个值。生成器并没有把所有迭代的内容都存储到内存中,而是在运行的过程中生成值。生成器亦可以通过遍历来使用,比如“for”循环,或者将其传递给任意可以进行迭代的函数或结构。大多数生成器都是通过函数来实现的,生成器并不会通过return来返回一个值,而是yield(可以翻译为‘生成’)一个值...
2018-03-23 22:42:00
99
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人