python 匿名函数 内置函数 模块和包 开发规范

时间:2021-02-12 19:12:57

匿名函数

匿名函数即没有绑定名字的函数,没有绑定名字,意味着只能用一次就会被回收
所以说匿名函数的应用场景就是:某个功能只用一次就结束了

定义方式 lambda 

lambda n:n**2       

举例

#max与lambda的结合
salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000
}
def f1(k):
return salaries[k]

print(max(salaries,key=lambda k:salaries[k])) # max() 取最大值的函数 可以通过 key 改变比较的对象
print(min(salaries,key=lambda k:salaries[k])) # min() 取最小值的函数

print(sorted(salaries,key=lambda k:salaries[k]))
print(sorted(salaries,key=lambda k:salaries[k],reverse=True))

举例

map,reduce,filter
l
=['alex','wupeiqi','yuanhao','huanghongwei']
print(list(map(lambda x:x+'_NB',l)))

 函数递归

def age(n):
if n == 1:
return 18
return age(n-1)+2
print(age(5))

 

内置函数

python 匿名函数 内置函数 模块和包 开发规范

 

模块的使用

导入模块,只会在第一次导入时执行源文件的代码
如果模块已经加载到内存了,下一次导入直接引用内存中导入的结果

导入模块

import spam

import 导入文件都做了哪些事?
1 以源文件为准产生一个名称空间
2 以刚刚产生的名称空间为准,执行源文件的代码
3 会在当前文件中定义一个名字,这个名字就是模块名,用来引用模块中的名字

举例

import spam
money
=0
def read1():
print('from ------>')
read1()
spam.read1()
spam.read2()


money
=1000000000
spam.change()
print(money)
spam.read1()

定义的spam文件

python 匿名函数 内置函数 模块和包 开发规范

 

为模块起别名

import spam as sm

在一行导入多个模块

import spam,time

from...import...

from spam import money,read1,read2,change

导入所有模块

 from spam import * #* 对应模块spam内的__all__属性

模块的使用

模块的查找顺序是:内存中已经加载的模块->内置模块->sys.path路径中包含的模块

 

import time,sys
print(sys)

import time
time.sleep(
3)

import sys
print(sys.path)

import xxx
import sys
sys.path.append(r
'C:\Users\Administrator\PycharmProjects\python19期\day5\a')

 包的使用

包以及包所包含的模块都是用来被导入的,而不是被直接执行的。而环境变量都是以执行文件为准的

导入包实际上就是在导入包下面的__init__.py文件

import sys
print(sys.path)

import aaa


print(aaa.x)
print(aaa.y)

print(aaa.m1)
aaa.m1.f1()
aaa.m2.f2()

print(aaa.f1)
aaa.f1()
aaa.f2()


import aaa
print(aaa.bbb.x)

aaa.bbb.m3.f3()

print(aaa.f3)
aaa.f3()
__init__.py文件
python 匿名函数 内置函数 模块和包 开发规范

开发规范

python 匿名函数 内置函数 模块和包 开发规范

 

本文参考 http://www.cnblogs.com/linhaifeng/articles/6379069.html#_label10