python_2023

正则表达式
res = re.search(':(.*)-','Tel:028-7654321')  #返回一个match对象,用group来处理
print(res.group(0))  #全部
print(res.group(1))  #第一部分


res = re.search('(\d{3,4})-(\d{7,8})','Tel:028-7654321')  #返回一个match对象,用group来处理
print(res.group(0))  #全部
print(res.group(1))  #第一部分
print(res.group(2))  #第二部分

#----------------------------------------------------------
s = '''
Host: movie.doouban.com
Pragma: no-cache
Referer: https://cn.bing.com/
'''

dict01 = {}
res = re.finditer('(.*):(.*)',s)  #返回一个迭代器,迭代器返回match对象

for m in res:
    dict01[m.group(1).strip()] = m.group(2).strip()  #生成一个字典
--------------------------------------------------------------
__init__.py的作用
1.package的标识,如果没有该文件,该目录就不会认为是package。
2.利用__all__去确定from import *的导入范围

mytool01文件夹下的__init__.py文件
__all__ = ['func01','func02']

mytool01文件夹下的func01.py文件 func02.py文件 func03.py文件 

from mytool01 import *

if __name__ == '__main__':
    func01.sayhi()
    func02.sayhello()
    func03.sayby() --->找不到 报错

--------------------------------------------------------------------------------------

print(__file__)  #当前文件的绝对路径
print(os.path.dirname(__file__))  #当前文件父级路径的绝对路径

BASE_DIR = os.path.dirname(__file__)
sys.path.append(BASE_DIR)

sys.path 显示导包的路径
        ['当前py文件的路径','pycharm加的当前项目的路径',...]
-----------------------------------------------------------------

匿名函数
        func = lambda x,y=100:x+y
        func(1000,2000) ->3000

用匿名函数实现闭包
def outer_func(x):
    return lambda: 2*x  # 返回的要是一个无输入函数 实现闭包

func_list=[]

for i in range(1,10):
    func_list.append(outer_func(i))
------------------------------------------------------------------------
小括号+列表推导式=生成器

list01 = ['a','b','c','d']

g1 = (item_+'dadadf' for item_ in list01)
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

#装饰器
from functools import wraps

def auth(func):
    @wraps(func)   # 把原函数的魔法方法传递给wrapper
    def wrapper(*args,**kwargs):
        print('-----------')
        re = func(*args,**kwargs)
        print('-----------')
        return re
    return wrapper

@auth
def sayhi():
    print('hello!!!!')

if __name__ == '__main__':
    sayhi()

带参数的装饰器

from functools import wraps

def g_outer(name,age):
    def auth(func):
        @wraps(func)   # 把原函数的魔法方法传递给wrapper
        def wrapper(*args,**kwargs):
            print('-----------')
            print(name)
            re = func(*args,**kwargs)
            print(age)
            print('-----------')
            return re
        return wrapper
    return auth

@g_outer('ziyang',25)
def sayhi():
    print('hello!!!!')

if __name__ == '__main__':
    sayhi()

多层装饰器--------------------------------------------------------------------------

from functools import wraps

def add_xinghao(func):
    def wrapper(*args,**kwargs):
        print('************')
        re = func(*args,**kwargs)
        print('************')
        return re
    return wrapper

def g_outer(name,age):
    def auth(func):
        @wraps(func)   # 把原函数的魔法方法传递给wrapper
        def wrapper(*args,**kwargs):
            print('-----------')
            print(name)
            re = func(*args,**kwargs)
            print(age)
            print('-----------')
            return re
        return wrapper
    return auth

@add_xinghao
@g_outer('ziyang',25)
def sayhi():
    print('hello!!!!')

'''
多层装饰器相当于
1.sayhi = g_outer(sayhi)
2.sayhi = add_xinghao(sayhi)

最外层的先执行后结束
'''


if __name__ == '__main__':
    sayhi()



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值