python语言特性
文章平均质量分 75
GeekCesto
Thinking Before Coding
展开
-
Python Study (01) 之 特殊方法
Python深入:特殊方法和多范式 Python是一切皆对象,意思就是python的天生就是个“纯面向对象语言”呀。 但是!!! Python还是一个多范式语言(multi-paradigm),即你不仅可以使用面向对象的方式来编写程序,还可以用面向过程的方式来编写相同功能的程序(当然还有函数式编程,java8也支持)。Python的多范式依赖于Python对象中的特殊方法(speci原创 2017-08-24 23:53:06 · 477 阅读 · 0 评论 -
Python Study(02)之 Context Manager
上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围。一旦对象进入或者离开该使用范围,会有特殊操作被调用 (比如为对象分配或者释放内存)。它的语法形式是with…as… 关闭文件我们会进行这样的操作:打开文件,读写,关闭文件。程序员经常会忘记关闭文件。上下文管理器可以在不需要文件的时候,自动关闭文件。f = open("new.txt",原创 2017-08-25 07:59:25 · 372 阅读 · 0 评论 -
Python Study (03)对象的属性
类属性和对象属性 对象的属性可能来自于其类定义,叫做类属性(class attribute)。类属性可能来自类定义自身,也可能根据类定义继承父类得到类属性。 一个对象的属性还可能是该对象实例定义的,叫做对象属性(object attribute)。 对象的所有属性储存在对象的__dict__属性中。__dict__为一个词典,键为属性名,对应的值为属性本身。 class bird原创 2017-08-25 08:25:16 · 625 阅读 · 0 评论 -
Python Study (04)闭包
闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (面向过程编程和面向对象编程也都是一种编程范式)。 在面向过程编程中,我们见到过函数(function); 在面向对象编程中,我们见过对象(object)。 函数和对象的根本目的是以某种逻辑方式组织代码,并提高代码的可重复使用性(reusability)。 而闭包也是一种组织代码的结构,它同样的目的是提高原创 2017-08-25 08:45:34 · 414 阅读 · 0 评论 -
Python Study (05)装饰器
装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数的返回结果。相对于其它方式,装饰器语法简单,代码可读性高。因此,装饰器在Python项目中有广泛的应用。 装饰器最早在Python 2.5中出现,它最初被用于加工函数和方法这样的可调用对原创 2017-08-25 09:13:24 · 412 阅读 · 0 评论 -
Python Study (06)内存管理GC
对象在内存的存储,我们可以求助于Python的内置函数id()。它用于返回对象的身份(identity)。其实,这里所谓的身份,就是该对象的内存地址。 a = 1 print(id(a)) #11246696内存地址的十进制 print(hex(id(a))) #'0xab9c68'十六进制在Python中,整数和短小的字符,Python都会缓存这些对象,也就是有个对象缓存池,以便重复使用和减少频繁原创 2017-08-25 09:29:06 · 553 阅读 · 0 评论 -
Python内存管理结合源码 整理补充 (未完成)
《Python源码阅读》之 内存管理机制1 @转载:py社区 Python的内存管理架构 _____ ______ ______ ________ [ int ] [ dict ] [ list ] ... [ string ] Python core | +3 | <----- Object-specific memory ----->转载 2017-08-26 10:06:13 · 697 阅读 · 0 评论 -
[翻译]Python中如何使用*args和**kwargs
在Python中如何使用可变长参数列表?函数定义 这是一种特殊的语法,在函数定义中使用*args和kwargs传递可变长参数.。 *args用作传递非键值可变长参数列表(类似list); **kwargs用作传递键值可变长参数列表 (类似dict) 例子:传递一个位置参数以及两个可变长参数def test_var_args(farg, *args): print ("for翻译 2017-08-26 10:21:55 · 636 阅读 · 0 评论 -
Python 代码规范小结
law一: 一切都与复杂度有关 二: 代码应当易于理解 对人:"好程序员”应当竭尽全力, 把程序写得让其他程序员(以及以后的自己)容易理解. 对代码: 代码被阅读的次数远多于编写和修改的次数 E = mc2 (Error = more codes) 对项目:公式: 可行性=(当前价值+未来价值)/(实现成本+维护成本). 即相比降低实现成本, 降低维护成本更加重要 基础: 风格团队成员转载 2017-08-26 10:29:54 · 757 阅读 · 0 评论