深圳旮沓打滚记

Python学习第八天

  1. help(函数)可以查看函数doc文档

  2. 匿名函数,功能只是一次性使用,使用匿名函数可以使代码更简洁

    f = lambda x:x*x # lamdba arg1 arg2 : f返回表达式的值 print(f(2)) a=[1,2,3] def f2(list,fun): for i in list: print(fun(i)) f2(a,lambda x:x+1) def do_list(fun,container): if isinstance(container,list): #判断类型 for i in container: print(fun(i)) a = [10,20,30] print(type(a)) do_list(lambda x:x+1,a)

  3. 偏函数:
    函数/方法重载:类内部方法名字相同,但是参数列表不一样
    fun(x):fun(1) fun(“y”) 动态类型语言不能根据实参类型来推断调用的函数
    def log(level,message):
    print(level+":"+message)
    def log_warning(level,message):
    if level == “warning”:
    print(level+":"+message)
    log(“debug”,“var x = 100”)
    log_warning(“warning”,“x is none”)
    #导入偏函数
    from functools import partial
    log_error = partial(log,“error”)
    log_error(“a_error”)
    def log_debug(info):
    return partial(log,message=info)
    f = log_debug(“debug info”)
    f(“debug”)

  4. 函数柯里化 Currying
    函数链式调用
    def one():
    print(“call one()”)
    def tow():
    print(“call tow()”)
    def three():
    print(“call three()”)
    return three
    return tow
    one ()()()
    5.装饰器修改函数行为:
    AOP: 面向方面编程,把公共的功能(身份验证、安全校验、权限验证、类型转换、数据验证、数据稽核、异常处理、性能检测、数据预处理、埋点…)做成独立模块,函数使用装饰器切入到需要的地方(函数调用的位置)
    利用装饰器切入公共功能:
    #import time
    class MyDecorator(object):

fun: 被装饰的函数

def __init__(self,fun):
    self.fun = fun
def __call__(self,*args,**kwargs):
    print("切入安全验证功能!")
    print(self.fun.__name__)
    print(args[0])
    print(args[1])
    print(kwargs)
    result = self.fun(*args,**kwargs)
    print("记录日志!")
    #print(detetime.datetime.now().year)
    return result
	@MyDecorator
	def place_order(user_id,password):
	    print("下单成功!")
	place_order("admin","admin")

利用装饰器进行数据预处理:
去除中英文标点符号、大写转换:
import zhon
import re # 正则表达式
#英文标点符号
from string import punctuation as pun
print(pun)
#中文标点符号
from zhon.hanzi import punctuation
print(punctuation)
stc_str = “aAFASD QF WGwea,wwfga w!asfas~~~a s dad. dasWWGd feq w5999”
no_en_pn_str = re.sub(r"[%s]+"%pun,’’,stc_str)
print("【去除英文标点符号】")
print(no_en_pn_str)
print("【去除中文标点符号】")
no_cn_pn_str = re.sub(r"[%s]+"%punctuation,’’,no_en_pn_str)
print(no_cn_pn_str)
result = no_cn_pn_str.split()
print(result)
result = no_cn_pn_str.replace(" “,”")
print(result)
x = result.lower()
print(x)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值