day11作业

本文介绍了Python中装饰器的基本用法,包括如何定义简单的装饰器来修改函数的行为,如添加输出、修改返回值等。此外还展示了如何利用内置函数进行数据处理,如找出列表中绝对值最大的元素、使用map和reduce进行列表操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 为函数写一个装饰器,在函数执行之后输出 after

    def start(f):
        def new_f(*args, **kwargs):
            re = f(*args, **kwargs)
            print('after')
            return re
    
        return new_f
    
    @start
    def func1():
        print('hello world')
    
    func1()
    
  2. 为函数写一个装饰器,把函数的返回值 +100 然后再返回。

def start(f):
    def new_f(*args, **kwargs):
        re = f(*args, **kwargs)
        return re + 100

    return new_f
  1. 写一个装饰器@tag要求满足如下功能:
@tag
def render(text):
    # 执行其他操作
    return text

@tag
def render2():
    return 'abc'

print(render('Hello'))   # 打印出: <p>Hello</p>
print(render2())     # 打印出: <p>abc</p>
def start(f):
    def new_f(*args, **kwargs):
        print('<p>')
        re = f(*args, **kwargs)
        print('</p>')
        return re

    return new_f


@start
def func11():
    print('hello world!')
  1. 求列表 nums 中绝对值最大的元素

    例如:nums = [-23, 100, 89, -56, -234, 123], 最大值是:-234
    
    nums = [-23, 100, 89, -56, -234, 123]
    result = max(nums, key= lambda item: abs(item))
    print(result)
    
  2. 已经两个列表A和B,用map函数创建一个字典,A中的元素是key,B中的元素是value

    A = ['name', 'age', 'sex']
    B = ['张三', 18, '女']
    新字典: {'name': '张三', 'age': 18, 'sex': '女'}
    
    A = ['name', 'age', 'sex']
    B = ['张三', 18, '女']
    new_dict = map(lambda list1, list2: {list1:list2}, A, B)
    print(list(new_dict))
    
  3. 已经三个列表分别表示5个学生的姓名、学科和班号,使用map将这个三个列表拼成一个表示每个学生班级信息的的字典

    names = ['小明', '小花', '小红', '老王']
    nums = ['1906', '1807', '2001', '2004']
    subjects = ['python', 'h5', 'java', 'python']
    结果:{'小明': 'python1906', '小花': 'h51807', '小红': 'java2001', '老王': 'python2004'}
    
    names = ['小明', '小花', '小红', '老王']
    nums = ['1906', '1807', '2001', '2004']
    subjects = ['python', 'h5', 'java', 'python']
    new_dict = map(lambda list1, list2, list3: {list1:list2+list3}, names, subjects, nums)
    print(list(new_dict))
    
  4. 已经一个列表message, 使用reduce计算列表中所有数字的和(用采用列表推导式和不采用列表推导式两种方法做)

    message = ['你好', 20, '30', 5, 6.89, 'hello']
    结果:31.89
    
### 关于黑马商城微服务 Day05 作业 #### 微服务架构中的 API 文档生成工具 在微服务开发过程中,API 文档的自动生成是一个重要的环节。`knife4j` 是一款专门为 Java MVC 框架设计的 Swagger 集成工具,能够帮助开发者快速生成美观且功能强大的 API 文档[^1]。 #### XXL-Job 的任务调度实现 XXL-Job 是一个分布式任务调度平台,在微服务项目中常用于定时任务的管理。通过定义任务处理器并使用 `@XxlJob` 注解标记方法,可以轻松实现任务调度的功能。例如,下面展示了一个简单的任务类: ```java package com.heima.xxljob.job; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @Component public class HelloJob { @XxlJob("demoJobHandler") public void helloJob() { System.out.println("简单任务执行了。。。。。。"); } } ``` 上述代码展示了如何创建一个名为 `demoJobHandler` 的任务处理程序,并在其内部实现了打印日志的功能[^2]。 #### Docker 镜像加载命令 对于微服务项目的部署环境准备阶段,Docker 提供了一种便捷的方式来进行容器化操作。以下是两个常用的镜像加载命令,适用于 Elasticsearch 和 Kibana 等组件的本地导入场景: ```bash docker load -i es.tar docker load -i kibana.tar ``` 这些命令可以从 `.tar` 文件恢复之前导出的镜像文件到当前环境中[^3]。 --- ### GitHub 教程与示例代码资源推荐 针对黑马商城微服务项目的第五天作业,建议参考以下方向获取更多学习材料: 1. **官方文档**:查阅 Knife4j 官方网站以及 XXL-Job 的官方指南,了解其最新特性和最佳实践。 2. **开源仓库**:访问 GitHub 上类似的微服务项目案例库,比如 Spring Cloud 或者 Dubbo 生态下的实战教程。 3. **社区论坛**:加入技术交流群组或者 Stack Overflow 中的相关话题讨论区,与其他开发者互动解决问题。 如果具体需求指向某些特定模块(如网关配置、限流策略设置),则需进一步细化查询条件来定位精确的内容源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值