python笔记3

python笔记3

  • python
    • 关于闭包函数
    • 关于不常用函数的理解
    • 异常处理 try 语句解析

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)