GiseR13

Weekly

迭代器、生成器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 迭代对象
# 可迭代对象:任意对象含有__iter__()方法或者__getitem__()方法都是可迭代的
# 迭代器
# 任意对象只要定义了next()或者__next__()方法就是迭代器
# 生成器:相比
def generator_function():
for i in range(n):
yield i
``` python
## Map函数
Map函数会将一个函数映射到一个输入列表的所有元素上
函数规范如下:
map(function,list_of_inputs)
function 可以是自定义函数,也可以是lambda函数
20170416 周日
Python:
class(类):具有共同属性特征的事物的集合,在程序中则可以理解为是一个模板
object(对象):根据模板创建出来的实例
面向对象的三大特性:继承、多态、封装
类成员:字段、方法、属性
## 字段
字段包含:普通字段、静态字段,主要在于定义和使用时的不同,本质的区别在于内存中的保存位置。
* 静态字段属于类
* 普通字段属于对象
* 静态字段只在内存中保存一次
* 普通字段每个对象都要保存
``` python
class human:
can_fly = False #静态字段
can_talk = True
has_leg = True
def __init__(self,language):
self.language = language #普通字段
pass
# 普通方法
def way_to_sea(self):
pass
# 类方法
@classmethed
def way_to_sky(cls):
print "By plain"
print "我只允许类使用"
@staticmethod
def hug():
pass
@property
def pro(self):
pass
# 通过对象访问普通字段
chinese = human("汉语")
print chinese.language
# 类直接访问静态字段
human.can_talk

方法

分为普通方法、静态方法、类方法
普通方法:由对象调用;至少有一个参数self(对象本身)
静态方法:由类调用,没有默认参数
类方法:由类调用;至少一个参数cls

注:
字段和变量的区别:字段是变量的子集
函数和方法的区别:可以简单的理解为和object(对象)有关的叫method(方法),和class(类)或者module相关的叫function(函数)

属性

属性可以理解为是普通方法的变种
特性:只有一个参数self
调用的时候不需要()