python笔记3
python
关于闭包函数
1.创建一个闭包函数:
(1)闭包函数必须有内嵌函数
(2)内嵌函数必须要引用外层函数的变量
(3)闭包函数返回内嵌函数的地址(函数名称)
案例1
def otter():
name = 'zs'
def inner(): # 外层函数包了个内层函数
print(name) # 内层函数引用了外层函数的变量
return inner # 外层函数返回内层函数的地址
f = otter() # 用f变量来接收inner函数的地址
f() # 调用inner()函数
案例2
def bar(multiple):
def foo(n):
return multiple ** n
return foo
bar(2)(3)
#2**3=8
return一个函数,考察闭包。当程序调用bar(a)时,返回一个foo函数的引用,此时变成foo(b),去执行foo函数里的函数体。
关于不常用函数的理解
issubclass() 函数
issubclass(class, classinfo)
参数
class – 类。
classinfo – 类。
返回值
如果 class 是 classinfo 的子类返回 True,否则返回 False。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class A:
pass
class B(A):
pass
print(issubclass(B,A)) # 返回 True
isinstance() 函数
isinstance(object, classinfo)
参数
object – 实例对象。
classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。
>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
异常处理 try 语句解析
当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。
try语句子句形式表
except: 捕获所有异常
except name: 只捕获特定的异常
except name,value: 捕获异常和它的附加数据(将异常的信息保存到value,)
except (name1,name2): 捕获任何列出的异常
else: 如果没有异常
finally: 总是执行
#1:如果x没有异常,执行z,i
#2:如果x有异常,
#一:如果except捕捉到异常则执行y,i
#二:没捕捉到,执行i,然后返回内置异常处理
try:
x
except(name):
y
else:
z
finally:
i
这篇Python笔记探讨了闭包函数的创建要点,并通过案例进行说明。同时,介绍了不常用的`issubclass()`和`isinstance()`函数。此外,详细解析了异常处理的`try`语句,阐述了其在捕获和处理错误时的角色。
2255

被折叠的 条评论
为什么被折叠?



