![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python语言特性
月夜寻花香丶
bug制造者
展开
-
Python语言特性-类变量和实例变量
类变量:是可在类的所有实例间共享的值,类变量用于跟踪存在着多少个Test的实例实例变量:实例化之后,每个实例都会有单独的变量例1class Test(object): num_of_instance = 0 def __init__(self, name): self,name = name Test.num_of_instance += 1if __name__ == ...原创 2018-10-17 21:56:30 · 127 阅读 · 0 评论 -
Python语言特性-作用域
Python 中,一个变量的作用域总是由在代码中被赋值的地方所决定的。当 Python 遇到一个变量的话他会按照这样的顺序进行搜索:本地作用域(Local)→当前作用域被嵌入的本地作用域(Enclosing locals)→全局/模块作用域(Global)→内置作用域(Built-in)...原创 2018-12-10 16:17:00 · 114 阅读 · 1 评论 -
Python语言特性-*args和**kwargs
用args和**kwargs只是为了方便,并没有强制你使用它们。当你不确定你的函数里将要传递多少参数时你可以用args.例如,它可以传递任意数量的参数:def print_everything(*args): for count, thing in enumerate(args): print '{0}. {1}'.format(count, thing)p...原创 2018-11-08 16:55:12 · 126 阅读 · 0 评论 -
Python语言特性-面向切面编程AOP
我们先来解释一下AOP的概念。AOP 即面向切面编程,指扩展功能不修改源代码,将功能代码从业务逻辑代码中分离出来。主要作用就是将类似于日志记录,性能统计,安全控制,事务处理,异常处理等重复性的代码块从业务逻辑代码中划分出来,对这些行为的分离。并且将它们独立到非知道业务逻辑的方法中,从而做到改变这些行为的时候不影响业务逻辑代码。我们python中使用装饰器实现AOP。装饰器是一个很著名的设计模...原创 2018-11-11 19:24:29 · 1073 阅读 · 0 评论 -
Python语言特性-迭代器和生成器
迭代器:定义:对于list、string、tuple、dict等这些容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数。iter()是python内置函数。iter()函数会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内的元素。next()也是python内置函数。在没有后续元素时,next()会抛出一个StopIteration异常...原创 2018-10-24 15:47:55 · 109 阅读 · 0 评论 -
Python语言特性-下划线
**python 中的标识符可以包含数字、字母和 ,但必须以字母或者 _ 开头,而以 下划线 () 开头的命名一般具有特殊的意义。**下划线对 python 的意义不同于其他语言,分单下划线、双下划线,并且有前缀有后缀。总的来说有五种形式。单双划线的 5 种形式:单一下划线:_开头单下划线:_var结尾单下划线:var_开头双下划线:__var开头结尾双下划线:__var__一....原创 2018-10-21 15:35:38 · 342 阅读 · 0 评论 -
Python语言特性-Python自省
Python的自省是python最强大的特性之一。自省就是面向对象的语言所写的程序在运行时,所能知道对象的类型,简单来说就是运行时能够自动获得对象的类型,比如:type(),dir(),getattr(),hasattr(),isinstance().a = [1,2,3]b = {'a':1,'b':2,'c':3}c = Trueprint type(a),type(b),type(...原创 2018-10-21 14:40:55 · 187 阅读 · 0 评论 -
Python语言特性-三种方法
Python其实有三个方法:静态方法(staticmehtod)类方法(classmethod)实例方法下面依次来看:def foo(x): print 'hello foo(%s)' % (x)class A(object): def foo(self, x): print 'hello foo(%s, %s)' % (self, x) @classmethod d...原创 2018-10-16 10:40:00 · 146 阅读 · 0 评论 -
Python语言特性-python的函数参数传递
Python的函数参数传递举例:1a = 1def index(a) a = 2index(a)print a # 12a = []def index(a) a.append(1)index(a)print a # [1]通过上面两个例子,可以的发现:所有的变量都可以理解为内存中一个对象的‘引用’通过id来看引用a的内存地址可以比较理解a = 1def...原创 2018-10-16 10:14:33 · 132 阅读 · 0 评论 -
Python语言特性-单例模式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且实例易于外界访问,从而方便对实例个数的控制并节省资源。单例模式是指创建唯一对象,单例模式设计的类只能实例 。下面给大家介绍四种方法:1 使用__new__方法new()在__init__()之前被调用,用于生成实例对象。利用这个方法和类的属性的特点可以实现设计模...原创 2018-10-18 15:48:45 · 267 阅读 · 0 评论 -
Python语言特性-鸭子类型
“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”我们并不关心对象是什么类型,到底是不是鸭子,只关心行为。比如在python中,有很多file-like的东西,比如strinIO(StringIO经常被用来作为字符串的缓存,和文件os对象操作方法是一致的),GzipFile(gzip模块提供了GzipFile类,在该类中提供了像open(),compr...原创 2018-10-18 15:24:11 · 272 阅读 · 0 评论 -
Python垃圾回收机制
Python GC主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题,通过“分代回收”(generation collection)以空间换时间的方法提高垃圾回收效率。1 引用计数PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数。当一个对象...原创 2018-12-11 10:04:25 · 137 阅读 · 0 评论