1. Python视频
B. 装饰器
B-1 装饰器流程剖析
# 解释器步骤: def outer(func): # 1.解释outer,不执行内部 def inner(): # 3.解释inner print('before') # 5.1 func() # 5.2 指向老的f1 print('after') # 5.4 return inner # 4.返回inner函数给f1(若inner加括号,则会先执行inner函数) # 则f1函数只想inner函数。若调用f1,则执行inner函数,示例5 # @ + 函数名 # 功能: # 1.自动执行outer函数并且将下面的函数名f1当作参数传递 # 2.将outer函数的返回值,重新赋值给f1 @outer # 2.解释,执行outer def f1(): print('F1') # 5.3
B-2 装饰器之返回值
def outer(func): def inner(): print('before') r = func() print('after') return r return inner # @ + 函数名 # 功能: # 1.自动执行outer函数并且将下面的函数名f1当作参数传递 # 2.将outer函数的返回值,重新赋值给f1 @outer def f1(): print('F1') return 'FFFFF'
import decorator ret = decorator.f1() print('返回值', ret)
B-3 装饰器之参数 (一个参数)
def outer(func): def inner(a): print('before') r = func(a) print('after') return r return inner # @ + 函数名 # 功能: # 1.自动执行outer函数并且将下面的函数名f1当作参数传递 # 2.将outer函数的返回值,重新赋值给f1 @outer def f1(arg): print(arg) return 'FFFFF'
import decorator ret = decorator.f1('fafafa') print('返回值', ret)
B-2 装饰器之参数 (万能参数)
def outer(func): def inner(*args, **kwargs): print('before') r = func(*args, **kwargs) print('after') return r return inner # @ + 函数名 # 功能: # 1.自动执行outer函数并且将下面的函数名f1当作参数传递 # 2.将outer函数的返回值,重新赋值给f1 @outer def f1(arg): print(arg) return 'FFFFF' @outer def f2(arg1, arg2): print('F2') @outer def f100(arg1, arg2, arg3, arg4): print('F100')
import decorator ret = decorator.f1('fafafa') print('返回值', ret) decorator.f2(11,22) decorator.f100(11,22,33,44)
装饰器实例:用户管理程序
2. MOOC - 用Python玩转数据 -> 完成
作业:寻找第n个默尼森数。 P是素数且M也是素数,并且满足等式M=2**P-1,则称M为默尼森数。
#!usr/bin/env python # -*- coding:utf-8 -*- # Author: Wayne Zhong def is_prime(num): for i in range(2, num): if num % i == 0: break else: return True def monisen(no): mns = [] x = 2 while True: if is_prime(x) and is_prime(2 ** x - 1): num = 2**x - 1 mns.append(num) if len(mns) > no: break else: x += 1 else: x += 1 #print(mns) return mns[no-1] print(monisen(int(input())))
3. MOOC - 数据库技术及应用
第1周:走进数据库
*******************************************************************************
4. MOOC课表