![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python核心编程
文章平均质量分 64
没有葡萄酸
拼搏到无能为力,坚持到感动自己
展开
-
元类
1. 类也是对象在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:>>> class ObjectCreator(object):… pass…>>> my_object = ObjectCreator()>>> print my_ob原创 2018-05-17 09:02:51 · 128 阅读 · 0 评论 -
Python系统编程之线程
前面讲过,如果我们电脑是单核的CPU,怎么才能有同时运行多个任务的感觉。那就是不停的切换各个任务去执行。那么我们怎么使用Python代码去实现呢?1,多线程-threadingpython的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用.1.1 使用threading模块单线程执行#coding=u...原创 2018-05-19 19:34:39 · 169 阅读 · 0 评论 -
Python系统编程之进程
1,何为进程?我们可以理解为:每一个任务都是一个进程。 打个比方,一在个视频,唱歌和跳舞这2件事情分别就是两个任务,如果是单个进程单个线程的话,理论上也就是在唱歌的时候不能跳舞,跳舞的时候不能唱歌,这是不是很尴尬。所以,我们一般来说,都希望能同时运行多个进程多个线程。线程我们暂且不讲,接下来讲下进程。2,进程跟CPU的关系一般来说,单核的CPU只有一个进程。但为什么我们也能看到单...原创 2018-05-19 16:34:43 · 173 阅读 · 0 评论 -
Python编码风格
练好的代码编写风格:促进团队合作减少bug处理提高可读性,降低维护成本有助于代码审查养成习惯,有助于程序员自身的成长pep8 编码规范pep8 官网规范地址:https://www.python.org/dev/peps/pep-0008/每级缩进用4个空格。# 对准左括号foo = long_function_name(var_one, var_two...原创 2018-05-19 14:08:04 · 344 阅读 · 0 评论 -
垃圾回收(三)-浅谈gc模块
Pdbpdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++)。 命令 简写命令 作用 break b 设置断点 continue c 继续执行程序 list l 查看当前行的代码段 step s 进入函数 return r 执行代码直到从当前函数返回 quit q...原创 2018-05-19 14:07:35 · 345 阅读 · 0 评论 -
垃圾回收(二)
1. Garbage collection(GC垃圾回收)即内存分配方面个人不中意C,什么都要实现弄好,自己某一个东西没考虑到就会出稀奇古怪的答案。不过一般现在的高级语言都是有自己的垃圾回收机制的。如JAVA,C#都有。 python里也同java一样采用了垃圾收集机制,不过不一样的是: python采用的是引用计数机制为主,标记-清除和分代收集两种机制为辅的策略引用计数机制: pyt...原创 2018-05-19 14:07:16 · 134 阅读 · 0 评论 -
垃圾回收(一)
前面我们讲了,Python一切皆对象,一切皆引用,变量的引用等,我们都知道,Python内部有一个自动的垃圾回收机制,引用计数机制。那么它到底实现呢?1. 小整数对象池整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 257) 这些整数对象是提前建立好的,不会被垃圾回收。在一个 P...原创 2018-05-18 17:31:36 · 104 阅读 · 0 评论 -
函数的属性私有
在编写类中经常遇到那种写一个函数,然后返回一个值的情况,然而我们需要得到那个值需要通过类对象调用该方法来实现。如:class Money(object): def __init__(self): self.__money = 100 def money(self): return self.__money def set_mone...原创 2018-05-18 17:08:28 · 280 阅读 · 0 评论 -
私有化
没怎么学过Java,不过在Java中很容易就能看到各种私有变量。Python中有吗? 有的呢,下面就是变量是否为私有的区别:xx: 公有变量_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问__xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)xx:双前后下划线,用户名字空间的...原创 2018-05-18 16:48:02 · 181 阅读 · 0 评论 -
LEGB 规则
变量,作用域,命名空间 .etc 在其他语言中,like C/C++ ,有全局变量,局部变量,以及各变量的作用范围,都有特定的规范。 在Python中也一样,即LEGB。Python 使用 LEGB 的顺序来查找一个符号对应的对象locals -> enclosing function -> globals -> builtinslocals,当前所在命名空...原创 2018-05-18 16:21:47 · 349 阅读 · 0 评论 -
装饰器类型
例1:无参数的函数from time import ctime, sleepdef timefun(func): def wrappedfunc(): print("%s called at %s"%(func.__name__, ctime())) func() return wrappedfunc@timefundef foo(...原创 2018-05-18 16:08:40 · 202 阅读 · 0 评论 -
装饰器原理
装饰器,可以说就是对闭包的一种应用。1,功能需求如果我们需要在执行某一函数之前需要执行另外一个操作,比如验证你是否有权限访问。 首先了解:#### 第一波 ####def foo(): print('foo')foo #表示是函数foo() #表示执行foo函数#### 第二波 ####def foo(): print('foo')f...原创 2018-05-18 15:42:37 · 542 阅读 · 0 评论 -
闭包
1. 函数引用def test1(): print("--- in test1 func----")#调用函数test1()#引用函数ret = test1print(id(ret))print(id(test1))#通过引用调用函数ret()运行结果:--- in test1 func----140212571149040140212571149...原创 2018-05-18 15:10:08 · 98 阅读 · 0 评论 -
迭代器
迭代 是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。1. 可迭代对象以直接作用于 for 循环的数据类型有以下几种:一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;一类是 generator ,包括生成器和带 yield 的gene...原创 2018-05-18 14:43:16 · 161 阅读 · 0 评论 -
生成器
1. 什么是生成器最简单的理解就是,如果我们创建一个列表,它会在内存在创建一块对应大小的空间。当他容量需求很大时,系统可能无法一下子提供如此大的空间,而导致程序崩溃。而生成器就是,无论你需求多大,我在某一个时刻只产生你需要的大小的数据,需要的时候再去取。因此能够恨好的解决内存问题。 在Python中,这种一边循环一边计算的机制,称为生成器:generator。2. 创建生成器方法1要...原创 2018-05-18 14:37:03 · 124 阅读 · 0 评论 -
对对象动态特性进行限制 "__slots__"
继上一篇讲的Python一切皆对象,并可以对对象进行动态的赋值。有利有弊,那么我们怎么对其进行某些限制呢。__slots__动态语言:可以在运行的过程中,修改代码静态语言:编译时已经确定好代码,运行过程中不能修改如果我们想要限制实例的属性怎么办?比如,只允许对Person实例添加name和age属性。为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的...原创 2018-05-18 14:21:31 · 107 阅读 · 0 评论 -
python的动态特性
1. 动态语言的定义动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用。它是一类 在运行时可以改变其结构的语言 :例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。例如JavaScript便是一个动态语言,除此之外如 PHP 、 Ruby 、 Python 等也都属于动态语言,而 C 、 C++ 等语言则不属于...原创 2018-05-17 09:11:36 · 1047 阅读 · 0 评论 -
Python核心编程之Re正则表达式
正则表达式不只有在Python里面有,基本上所有的语言都会用到。 Re(Regular Expression)用来匹配字符串文本,个人觉得非常好用。 只要记住一些常用的表达式,其他的不懂是时候可以进行查找,毕竟只re只是个工具啦。1,Python操作示例在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re #coding=utf-8 ...原创 2018-05-24 21:29:23 · 4132 阅读 · 0 评论