基本函数-function
if '__main__' == __name__: a=100 print(id(a))
模块的引用
import ku as liebiao liebiao=[1,2,34,5,6,8,11] diaoyong=bianle.maopao(liebiao) #只可以用新的变量名,更改库名 print(diaoyong)
模块搜索路径
先搜当前文件夹内有没有,再去指定路径找
import sys print(f"sys.path: {sys.path}") ''' ['/Users/mac/Desktop/video/python/day16', '/Users/mac/Desktop/video/python', '/Applications/anaconda3/lib/python36.zip', '/Applications/anaconda3/lib/python3.6', '/Applications/anaconda3/lib/python3.6/lib-dynload', '/Applications/anaconda3/lib/python3.6/site-packages', '/Applications/PyCharm.app/Contents/helpers/pycharm_matplotlib_backend'] '''
不定长参数
python自定义函数中有两种不定长参数,
第一种是*XXX,在传入额外的参数时可以不用指明参数名
,直接传入参数值即可。
第二种是**XXX,这种类型返回的是字典
,传入时需要指定参数名
。
加了一个星号 :不定长参数会以元组(tuple)的形式导入
,存放所有未命名的变量参数
。
加了两个星号 :参数会以字典
的形式导入
,存放已命名的变量参数
。
def water(name,*args): print(name) for i in args: print(i) if '__main__' == __name__: water("donggua ",1,2,3,4,5,600)
参数传递
传递元组
def f(aaa): print(aaa) if '__main__' == __name__: f((123,1,2,3))
传递字典
def f(aaa): print(aaa) if '__main__' == __name__: f({"123":1})
缺陷,容易改了原始数据,可以用copy()方法避免
def f(aaa): print(aaa) if '__main__' == __name__: f({"123":1}.copy())
变量作用域
全局变量
global j
闭包closure
介于全局变量 局部变量 之间
nonlocal 用了这个声明闭包变量才能在内部修改闭包变量
匿名函数lambda表达式
if '__main__' == __name__: a=lambda x, y: x + y print(a(1,5))
🌸I could be bounded in a nutshell and count myself a king of infinite space.
特别鸣谢:木芯工作室 、Ivan from Russia