函数、对象、模块(练习)

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“
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值