摘要:
对象变动(Mutation) Python中可变(mutable)与不可变(immutable)的数据类型让新手很是头痛。简单的说,可变(mutable)意味着"可以被改动",而不可变(immutable)的意思是“常量(constant)”。想把脑筋转动起来吗?考虑下这个例子: foo = ['h 阅读全文
摘要:
Global和Return 你也许遇到过, python中一些函数在最尾部有一个return关键字。你知道它是干嘛吗?它和其他语言的return类似。我们来检查下这个小函数: def add(value1, value2): return value1 + value2 result = add(3 阅读全文
摘要:
python有三个内置装饰器:@property , @classmethod , @staticmethod (一)@property 这是用来修饰类的方法的,可以把类的方法变成可直接读/写的属性 相当于get和set方法 我们看看下面这个例子 class Person(object): def 阅读全文
摘要:
前言什么是装饰器实现原理实现效果适用场景装饰器:装饰器的写法装饰器的拓展 装饰器的模板什么是装饰器呢? 就是在特定条件下为某些函数再不改动函数体的时候为函数新添加一些功能,这就是装饰器 实现原理:基于@语法和函数闭包,将原函数封装在闭包中,然后将函数赋值为一个新的函数(内置函数),执行函数时再在内层 阅读全文
摘要:
装饰器 装饰器(Decorators)是Python的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿)。大多数初学者不知道在哪儿使用它们,所以我将要分享下,哪些区域里装饰器可以让你的代码更简洁。 首先,让我们讨论下如何写你 阅读全文
摘要:
三元运算符 三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(not)的条件判断,在Python 2.4以上才有了三元操作。 下面是一个伪代码和例子: 伪代码: #如果条件为真,返回真 否则返回假 condition_is_true if condition else 阅读全文
摘要:
set(集合)数据结构 set(集合)是一个非常有用的数据结构。它与列表(list)的行为类似,区别在于set不能包含重复的值。这在很多情况下非常有用。例如你可能想检查列表中是否包含重复的元素,你有两个选择,第一个需要使用for循环,就像这样: some_list = ['a', 'b', 'c', 阅读全文
摘要:
Map,Filter 和 Reduce 三个函数能为函数式编程提供便利。我们会通过实例一个一个讨论并理解它们。 Map Map会将一个函数映射到一个输入列表的所有元素上。这是它的规范: 规范 map(function_to_apply, list_of_inputs) 大多数时候,我们要把列表中所有 阅读全文
摘要:
首先我们要理解迭代器(iterators)。根据维基百科,迭代器是一个让程序员可以遍历一个容器(特别是列表)的对象。然而,一个迭代器在遍历并读取一个容器的数据元素时,并不会执行一个迭代。你可能有点晕了,那我们来个慢动作。换句话说这里有三个部分: 可迭代对象(Iterable) 迭代器(Iterato 阅读全文
摘要:
我观察到,大部分新的Python程序员都需要花上大量时间理解清楚 *args 和**kwargs这两个魔法变量。那么它们到底是什么? 首先让我告诉你, 其实并不是必须写成*args 和**kwargs。 只有变量前面的 *(星号)才是必须的. 你也可以写成*var 和**vars. 而写成*args 阅读全文