1、闭包需要满足的三个条件是什么?

  1. 存在于两个嵌套关系的函数中,并且闭包是内部函数
  2. 内部函数引用了外部函数的变量
  3. 外部函数会把内部函数的函数名称返回

按照上面三个条件创建一个用于计算平方根的闭包函数。

import math
def outerfunc():  # outerfunc为外函数
    x=int(input("请输入一个数字:"))  # x是外函数的非全局变量
    def innerfunc():  # innerfunc是内函数
        return math.sqrt(x)  #内函数使用外函数的非全局变量
    return innerfunc  #外函数最终返回的是内函数的引用
func=outerfunc()
sqrtone=func()
print("内函数计算后的平方根是:"+str(sqrtone))

python高级函数练习(三)
2、现有一函数内容如下:
python高级函数练习(三)
要求为test函数创建装饰器,装饰器函数有入参,在装饰器中打印出装饰函数,执行结果如下:
python高级函数练习(三)

def q(w1):
    def inner(num1,num2):
        print("装饰器开始装饰:")
        print("--打印装饰器的入参为:",num1,num2,"我是装饰器的入参啊")
        w1(num1,num2)
        return 'huatec'
    return inner
@q
def test(num1,num2):
    print("被验证函数开始,被修饰函数入参之和为:",num1+num2)
    return 'huatec'
#调用test函数
print(test(1,2))

python高级函数练习(三)
3、使用filter函数打印出1~100内所有能被3整除的数

import math
def bszc(x):
    return x%3==0
newlist = filter(bszc,range(1,101))
print(list(newlist))

python高级函数练习(三)
4、输入一个数使用reduce计算这个数的阶乘。

from functools import reduce
def add(x,y):
    return x*y
list = []
i=int(input("计算阶乘,请输入一个数:"))
for x in range(1,i+1):
    list.append(x)
    print(list)
reduce(add,list)
print(int(reduce(add,list)))

python高级函数练习(三)
5、实现乘法重载,将两个列表对应元素相乘。

import numpy as np
class TestChengFa(object):
    def __init__(self,high,old):
        self.high=high
        self.old=old
    def chenfa(self,a,b):
        return a*b
    def chenfa(self,listone,listtwo):
        listthree=np.multiply(np.array(listone),np.array(listtwo))
        print(listthree)
    #创建对象
jack = TestChengFa(2,20)
print("开始调用原方法:")
print(jack.chenfa(4,5))
list1=[1,2,3,4]
list2=[5,6,7,8]
print("开始调用重载的方法")
jack.chenfa(list1,list2)

python高级函数练习(三)
6、参照课件实例,完成鱼,鸟和水鸟的多继承创建。
更新中!!!!!
7、现有一Python类如下:
创建一个实例,按照“实例.属性”的方式分别打印出类属性和实例属性,要求打印的类属性为9,实例属性为5,按照“类.属性”的方式,打印出可以打印的所有属性,要求其中打印的类属性值为6,打印部分结果如下图:
8、创建一个类,要求内部包含一个用于求和的类方法,一个用于打印求和结果的静态方法,如图所示:
9、参照“模板”章节课件,完成模块得到制作、发布和安装。

相关文章: