对于函数内部是封闭的
@outer
1.执行outer函数,并且将其下面的函数名当作参数
2.将outer的返回值重新赋值给f1(相当于再定义一个f1,让f1=outer的返回值)
新f1函数=inner
原函数封装到其它函数里边
执行新的函数
只要函数应用装饰器,那么函数就被重新定义,重新定义为:装饰器的内层函数
1.lambda
func = lambda x,y:9+x
参数:x,y
函数体:9+x==>>return 9+x
func:函数名
def func(x,y):
return x+9
def f1():
return “F1”
def f2(x):
x()#执行了函数
f1=>函数
f2=>函数
f1()=>执行函数
f2(f1)执行f2,把f1当成参数传递
扩展:函数名可以当做参数传递
函数名()=>执行函数
函数名==》代指函数
def MyFilter(func,arg):
for i in arg:
func(i)
def MyPrint(x):
print(x)
MyFilter(MyPrint,[11,22,33,44,55,6,6])
Connected to pydev debugger (build 172.3317.103)
11
22
33
44
55
6
6
Process finished with exit code 0
一、打开文件
二、操作文件
三、关闭文件
open(文件名,模式,编码)默认是只读模式就是”r”
f = open("ha.log")#equals open("ha.log","r")
data=f.read()
f.close()
print(data)
r,只读模式【默认】
w,只写模式【不可读;不存在则创建;存在则清空内容】
x,只写模式【不可读,不存在则创建;存在则报错】
a,追加模式【不可读,不存在则创建,存在则只追加内容】
”+”表示可以同时读写文件
r+,读写【可读、可写】 从开始向后读 写追加,指针调到最后
w+,写读【可读,可写】 先清空,从开始向后读,写也是追加数据,每次都是重新写 f.write(“中”)
x+,写读【可读,可写】 文件存在则报错
a+,写读【可读,可写】 找开后就在最后
都可以通过seek调整
#python3中的
”b”表示以字节的方式操作
rb或r+b
wb或w+b
xb或x+b
ab或a+b
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型
flush()刷到硬盘里
f.read(1)读取一个字符
f.read(1)带b读取一个字节
r = round(3.3)
print(r)
四舍五入
vars()对象里面有多少变量
i = pow(2,10)
print(i)
指数
li = [11,22,33,44]
r=max(li)
print(r)
obj=iter([11,22,33,44])
print(obj)
r1 = next(obj)
print(r1)
r2 = next(obj)
print(r2)
没了就会报错的
yield==>
isinstance 判断某个对象是否是某个类创建的
r = isinstance(li,list)
print(r)
list可以是其父类
map(函数,可以迭代的对象)
# def f1(x):
# if x>2:
# return True
# else:
# return False
# ret = filter(f1,[0,1,2,3,4,5])
# for i in ret:
# print(i)
def f1(x):
return x+100
#ret = map(f1,[1,2,3,4,5])
ret = map(lambda x:x+100,[1,2,3,4,5,6,])
print(ret)
for i in ret:
print(i)
C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\python.exe “C:\Program Files\JetBrains\PyCharm 2017.2\helpers\pydev\pydevd.py” –multiproc –qt-support=auto –client 127.0.0.1 –port 1064 –file C:/Users/Administrator/PycharmProjects/py/recover.py
pydev debugger: process 4952 is connecting
Connected to pydev debugger (build 172.3317.103)
<map object at 0x02E71030>
101
102
103
104
105
106
Process finished with exit code 0