函数调用
函数调用方式:内存地址()
匿名函数
lambda x,y:x+y + x**y
(lambda x,y:x+y + x**y)(2,3)
场景应用
salaries = {
'tencent':1000,
'bd':1500,
'zjtd':500
}
res1 = max(salaries,key=lambda x:salaries[x])
res2 = sorted(salaries,key=lambda x:salaries[x],reverse=True)
l = ['alex','lxx','lwx','mlxg']
res = map(lambda name:name+'lsp',l)
ress = filter(lambda name:name.endswith('glsp'),res)
包
首次导入模块发生的几件事:
# - 执行模块
# - 产生该模块名称空间,将产生的名称都丢到名称空间
# - 在当前文件产生一个名字,指向上一步产生的名称空间
模块导入规范:
# - 导入内置模块
# - 导入第三方模块
# - 导入自定义模块
模块设计调试
模块内置属性:name
# 在文件被运行时,__name__的值为'main'
# 在文件被当作模块导入时,__name__的值为模块名
导入模块查找顺序:
# -内存(内置模块)
# -硬盘:sys.path 依次寻找
# sys.path : 第一个环境变量是以正在运行的文件为准的,
# 是该正在运行文件文件夹下
已经加载到内存的模块 sys.modules
类型提示功能:
# 在定义函数时,函数参数后面加 :int/tuple。。。 或者自己定义('day','month')
# 提示信息,写啥都行
包:含有__init__.py的文件夹
导入包:运行__init__.py文件,并导入__init_.py中的名字
init.py:
# 绝对导入: 以包的文件夹作为起始位置导入包下的模块
# from 包.文件名 import 功能
# 相对导入 : .代表当前文件夹 ..代表上层文件夹
导入时带点,点的左边必须是一个包