1、闭包需要满足的三个条件是什么?按照上面三个条件创建一个用于计算平方根的闭包 函数。闭包需要满足如下3个条件:
(1)存在于两个嵌套关系的函数中,并且闭包是内部函数;
(2)内部函数引用了外部函数的变量(自由变量);
(3)外部函数会把内部函数的函数名称返回。
import math
def outer(start=0):
count=[start]
def inner():
count[0]=math.sqrt(count[0])
return count[0]
return inner
out=outer(49)
print(out())
2、 现有一函数,要求为test函数创建装饰器,装饰器函数有入参,在装饰器中打印出装饰函数入参。
def func_arg(args):
def func(test):
def func_in(num1,num2):
print("装饰器开始装饰")
print('--打印装饰器的入参为: %s' %args)
return test(num1,num2)
return func_in
return func
@func_arg('我是被修饰的参数啊')
def test(num1,num2):
print("被验证函数开始,被修饰函数入参函数之和为:",num1+num2)
return 'huatec'
print(test(1, 2))
3、使用filter函数打印出1~100内所有能被3整除的数。
func=lambda x:x%3==0
result=filter(func,range(1,100))
print(list(result))
4、输入一个数,使用reduce计算这个数的阶乘。
from functools import reduce
a=int(input('请输入要计算阶乘的数:'))
print(reduce(lambda x,y:x*y,range(1,a+1)))
5、实现乘法重载,将两个列表对应元素相乘。
func=lambda x,y:x*y
result=map(func,[1,2,3,4,5],[6,7,8,9,10])
print(list(result))
6、 参照课件实例,完成鱼、鸟和水鸟的多继承创建。
class fish(object):
def swim(self):
print('- -鱼儿在水中遨游')
class bird(object):
def fly(self):
print('- -小鸟在空中飞翔')
class shuin(fish,bird):
def swim(self,num):
print("--鱼儿在水中遨游2--",num)
w=shuin()
w.fly()
w.swim(1)
7、 现有一Python类,创建一个实例,按照“实例.属性”的方式分别打印出类属性和实例属性,要求打印的类属性为9,实例属性为5,按照“类.属性”的方式,打印出可以打印的所有属性,要求其中打印的类属性值为6。
class Cat(object):
number = 0
def __init__(self,age):
self.age = age
cat = Cat(1)
Cat.number=9
print("cat的类属性为:",cat.number)
cat.number=5
print("cat的对象属性为:",cat.number)
Cat.number=6
print("Cat的类属性为:",Cat.number)
8、创建一个类,要求内部包含一个用于求和的类方法,一个用于打印求和结果的静态方法。
class Demo(object):
@classmethod
def test(cls,a,b):
print('此处是类方法,','我负责',a,'和',b,'的求和运算')
class static(object):
@staticmethod
def test1(a,b):
print('此处是静态方法,我负责打印,打印求和结果为:',a+b)
Demo.test(1,2)
static.test1(1,2)
9、参照“模板”章节课件,完成模块的模块的制作、发布和安转。
(1)模块的制作
def add(a,b):
return a+b
ret=add(11,22)
print('int test.py file,11+22=%d'%ret)
运行main文件时,发现运行结果输出了test.py中的测试代码
from package_1 import test
result=test.add(22,33)
print(result)
(2)模块的发布
①编辑setup.py文件,指明需要包含哪些py文件
from distutils.core import setup
setup(
name="itheima",
version="1.0",
description="itheima belongs to itcast",
author="itcast",
py_modules=['package_1.test','package_2.mode'])
②构建模块
‘
③生成发布压缩包
打包后的目录结构
(3)模块的安装
①找到模块的压缩包,对压缩包进行解压
②执行命令“python setup.py install“