您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python全栈之作用域和闭包

51自学网 2022-02-21 10:46:40
  python
这篇教程Python全栈之作用域和闭包写得很实用,希望能帮到您。

1. return返回值

# ### return 自定义函数的返回值"""概念:return 把函数内部的数据返回到函数的外面,返回到函数的调用处1.return + 六大标准数据类型 , 除此之外还可以返回函数 或者 是类对象2.return 在执行时,意味着终止函数,后面的代码不执行.3.如果不定义return返回值,默认返回None"""# (1) return + 六大标准数据类型def func():	# return 111	# return 6.89	# return "你好帅啊,我爱死你乐"	# return [1,2,3]	# return {"a":1,"b":2}	return 1,2,3 # 返回元组res = func()print(res)# (2) return 在执行时,意味着终止函数,后面的代码不执行.def func():	print(1)	print(2)	return 3	print(4)res = func()print(res)def func():	for i in range(5):		if i == 3:			return 4		print(i)res = func()print(res)# (3) 如果不定义return返回值,默认返回Nonedef func():	passres = func()print(res) # None# 注意点 打印的数据和返回的数据不是等价的,返回的数据是可以自定义的;res = print(1234)print(res)  # None# 模拟+-*/计算器"""功能:   完成计算参数:   2个数字和运算符返回值: 计算后的结果"""def calc(num1,num2,sign):	if sign == "+":		return num1 + num2	elif sign == "-":		return num1 - num2	elif sign == "*":		return num1 * num2	elif sign == "/":		if num2 == 0:			return "除数不能为零"		return num1 / num2	else:		return "抱歉,超出了我的运算范围."res = calc(3,5,"+")res = calc(3,5,"-")res = calc(3,5,"*")res = calc(3,0,"/")res = calc(3,0,"&")print(res)

2. 全局变量_局部变量

# ### 全局变量和局部变量"""1.概念	局部变量:在函数内部定义的变量就是局部变量	全局变量:在函数外部定义的变量或者在函数内部使用global关键字声明是全局变量2.作用域:	局部变量的作用范围仅仅在函数的内部	全局变量的作用范围横跨整个文件3.生命周期:该变量的作用时长	内置命名空间 -> 全局命名空间  -> 局部命名空间 (开辟空间顺序)	内置属性 > 全局属性 > 局部属性 (作用时长:长->短)"""# 1 局部变量def func():	# 定义一个局部变量	a = 1	# 获取当前的局部变量	print(a)	# 修改一个局部变量	a = 2	print(a)func()# print(a) error# 2.全局变量# 定义一个全局变量b = 10# 获取当前的全局变量print(b)# 修改一个全局变量b = 20print(b)def func():	print(b)func()# 3.函数内部定义全局变量def func():	global c	c =30func()print(c)# 4.函数内部修改全局变量d = 50def func():	global d	d = 51func()print(d)"""总结:global的使用如果当前不存在全局变量,可以在函数内部通过global关键字来定义全局变量如果当前存在全局变量,可以在函数内部通过global关键字来修改全局变量"""

3. 函数名的使用

# ### 函数名的使用"""# python中的函数可以像变量一样,动态创建,销毁,当参数传递,作为值返回,叫第一类对象.其他语言功能有限"""def func():	print( "我是func函数")# (1)动态创建a = 1print(a)a = funca()# (2)动态销毁del a# a()# func()# (3)当参数传递def func2():	return "我是func2函数"def func1(f):	return f() # "我是func2函数"res = func1(func2)print(res)# (4)作为值返回def func3():	print( "我是func3函数" )def func4(f):	return fres = func4(func3)	print(res)res()print("<===>")# (5)函数名可以作为容器类型数据的元素lst = [func,func3]for i in lst:	i()print("<=========>")# ### __doc__ 或者help查看文档def big_chang_cishen(something):	"""	功能: 教你怎么吃大肠	参数: 吃的内容	返回值: 是否满意	"""	print("把{}洗一洗".format(something))	print("直接找肠子头,放嘴里,吸一下")	print("擦擦嘴,满意的放下肠子头")	return "吃完了,真好吃~"big_chang_cishen("生肠子")# 方法一res = big_chang_cishen.__doc__print(res)# 方法二help(big_chang_cishen)

4. 函数的嵌套

4.1 函数的嵌套

# ### 函数的嵌套"""互相嵌套的两个函数![请添加图片描述](https://img-blog.csdnimg.cn/f3ab3fd8502e43eebd473306c0e28633.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54as5aSc5rOh5p645p2e,size_20,color_FFFFFF,t_70,g_se,x_16):	包裹在外层的叫做外函数,内层的就是内函数"""def outer():	# inner()	def inner():		print("我是inner函数")""""""# (1)内部函数可以直接在函数外部调用么 不行# inner()# (2)调用外部函数后,内部函数可以在函数外部调用吗 不行# outer()# inner()# (3)内部函数可以在函数内部调用吗 可以outer()# (4)内部函数在函数内部调用时,是否有先后顺序 有的# 先定义在调用# 在其他语言中有预加载的机制,提前把函数驻留到内存中,然后再去编译脚本内容# python没有预加载函数的机制,只能先定义在调用;# 外函数是outer  中间函数是inner  最里层是smaller ,调用smaller函数def outer():	def inner():		def smaller():			print("我是smaller函数")		smaller()	inner()outer()# LEGB 原则def outer():		def inner():		def smaller():				print(a)		smaller()	inner()outer()"""LEGB原则(就近找变量原则)#找寻变量的调用顺序采用LEGB原则(即就近原则)B 
Python3.10和Python3.9版本之间的差异介绍
Python全栈之字符串和列表相关操作
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。