python学习心得2

装饰器和偏函数

(一)装饰器
概念:是一个闭包。把一个函数当做参数返回一个替代版的函数,本质就是一个返回函数的函数。
1.简单的装饰器

def func1():
    print("kaixinjiuhao")
def outer(func):
    def inner():
        print("*****************")
        func()
    return inner
f = outer(func1)
f()

2.通用装饰器

def outer(func):
    def inner(*args, **kwargs):
        #添修饰功能
        print("*************")
        func(*args, **kwargs)
    return inner
@outer
def say(name, age):#函数的参数理论上是无限的,但实际上最好不要超过6,7个
    print("my name is %s, I am %d years old" % (name, age))
say("shuaige", 21)

3.复杂装饰器
(1)方法一

def say(age):
    print("kaixin %d jiuhao" % (age))
say(10)
def outer(func):
    def inner(age):
        if age < 0:
            age = 0
        func(age)
    return inner
say =outer(say)
say(-10)

(2)方法二

def outer(func):
    def inner(age):
        if age < 0:
            age = 0
        func(age)
    return inner

使用@符号将装饰器应用到函数 #python2.4支持使用@符号

@outer  #作用相当于say = outer(say)
def say(age):
    print("kaixin %d jiuhao" % (age))
say(-10)

(二)偏函数:

import functools
print(int("1010", base = 2))
#偏函数
def int2(str, base = 2):
    return int(str, base)
print(int2("1011"))

int3 = functools.partial(int, base = 2)
print(int3("111"))

(三)变量的作用域
作用域:变量可以使用的范围。程序中的变量并不是在所有位置都能使用的,访问的权限决定于变量在哪里赋值的。
作用域分类:
局部(函数)作用域:
全局作用域:
内建作用域:
(四)异常处理
需求:当程序遇到问题时,不让程序结束,而可以越过程序向下执行。
1.分类:
(1) try……except…..else
(2) try……except…..fanilly
2.格式
(1) try……except…..else

try:
语句t
except 错误码 as e:
语句1
.......
except 错误码 as e:
语句2
.......
except 错误码 as e:
语句n
else:
语句e

注意:else语句可有可无
作用:又来检测try语句块中的错误,从而使except语句捕获错误信息并处理
逻辑:当程序执行到try-except-else语句时
1。如果当try“语句t”执行出现错误,会匹配第一个错误码,如果匹配上,就执行第一个对应语句。
2.当try语句t执行没有错误,没有匹配的异常,错误会被提交到上一层try语句。或者到程序的最上层。
3.如果当try语句t执行没有错误,执行else下的语句e(你得有语句e)

(2) try……except…..fanilly

try:
语句t
except 错误码 as e:
语句1
.......
except 错误码 as e:
语句2
.......
except 错误码 as e:
语句n
finally:
语句f

作用:语句t无论有没有错误,都会执行最后的语句f
(五)读文件
过程:
1.打开文件
open(path, flag[, encoding][, errors])
path:要打开文件的路径
flag:打开方式
r 以只读的方式打开文件,文件的描述符放在文件的开头。
rb 以二进制格式打开一个文件只读,文件描述符放在开头。
r+ 打开一个文件用于读写,文件描述符放在文件的开头。
w 打开一个文件用于写入,如果该文件已经存在则会覆盖,如果不存在则创建新文件。
wb 打开一个文件值用于写入二进制,如果该文件已经存在则会覆盖,如果不存在则创建新文件。
w+ 打开一个文件用于读写,如果该文件已经存在则会覆盖,如果不存在则创建新文件。
a 打开一个文件,用于追加。如果文件存在,则文件描述符会放到文件末尾。
a+ 打开一个文件,用于追加。如果文件存在,则文件描述符会放到文件末尾。
2.读文件内容

(1) 读取文件的全部内容
(2) 读取指定字符数
(3)读取整行
(4)读取所有行兵返回列表
3.关闭文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值