狗剩学python:基本概念笔记(三)

mac2024-05-22  30

三、枚举、装饰器、生成器、迭代器

(十)枚举

(1)枚举是类,特征如下:

//第一种 import enum enum.Enum('枚举名称',('变量1','变量2','变量3','变量4' ... ...) //第二种 import enum class 类名(enum.Enum): 变量1=值 变量2=值 变量3=值 变量4=. . . . . .

(十一)装饰器

1.装饰器的特征:@

2.示例:

#第一种 # 装饰器函数 def foo(fn): print('foo函数') print('----在目标表函数之前增加的活动----') fn() print('----在目标表函数之后增加的活动----') return 'python' # 被装饰的函数 @foo def bar(): print('bar函数') print(bar, type(bar)) #第二种 # 装饰器函数 def foo(fn): # 此处 fn 代表了被装饰的函数 print('foo函数') def noname(*args): print('----在目标表函数之前增加的活动----') fn(*args) print('----在目标表函数之后增加的活动---') return 'python' return noname # 被装饰的函数 @foo def test(a, b): print('test函数') print('参数a:', a) print('参数b:', b) print(test(2, 4))

(十二)生成器

1.生成器的特点:yield 2.代码示例:

def test(val, step): print("-------------函数开始执行-------------") cur = 0 for i in range(val): cur += i*step yield cur t=test(10,2) print(type(t)) print(list(t))

(十三)迭代器

1.特征:iter 2.代码示例:

class Fib(object): def __init__(self, max): super(Fib, self).__init__() self.max = max def __iter__(self): self.a = 0 self.b = 1 return self def __next__(self): fib = self.a if fib > self.max: raise StopIteration self.a, self.b = self.b, self.a + self.b return fib # 定义一个main函数,循环遍历每一个菲波那切数 def main(): # 20以内的数 fib = Fib(20) for i in fib: print(i) # 测试 if __name__ == '__main__': main()
最新回复(0)