1 什么是迭代器,生成器,装饰器
2 django的信号用过吗?如何用,干过什么
3 Dockerfile用过吗?常永命令有哪些
1 什么是迭代器,生成器,装饰器
迭代器(Iterator)是一个对象,它可以迭代一组值,也就是逐个访问一个集合中的元素,而无需知道集合的内部结构。Python 中的迭代器可以通过 iter() 和 next() 函数实现。其中,iter() 函数返回一个迭代器对象,而 next() 函数用于逐个返回迭代器的元素.
'''
迭代:不依赖于索引取值的方式,我们不需要关注它的位置,只要能够一个一个的取值,他就称之为迭代(语句中含有for循环,或者函数中含有next())
可迭代对象:可以迭代的Python中的对象称之为可迭代对象
迭代器:可迭代对象调用__iter__,就得到了迭代器,迭代器有__iter__和__next__方法
自定义迭代器:自己写一个类,类中重写__iter__和__next__方法,这个类的对象就是迭代器
'''
生成器(Generator)是一种特殊的迭代器,它可以在迭代过程中动态生成数据。Python 中的生成器可以通过函数和生成器表达式创建。函数生成器使用 yield 关键字来生成数据,并且每次调用 yield 语句时,函数的状态都会被保存,以便下次迭代时可以继续执行。
'''
生成器的本质就是迭代器
函数中只要有关键字yield,这个函数被调用函数加括号,它就变成了生成器
生成器表达式也可以做成生成器,(i+1 for i in [1,2,3])
我们常用的for i in range(10)这种,就是典型的生成器
'''
装饰器(Decorator)是一种语法糖,它可以用于修改或增强函数或类的功能。装饰器本身是一个函数或类,它可以接受一个函数或类作为参数,并返回一个新的函数或类。在不修改函数或类定义的情况下,动态地增加、删除或修改其行为。装饰器可以使代码更加简洁、易于维护,并且可以避免重复代码。
'''
装饰器:本身就是一个闭包函数,作用是在不改变被装饰对象源代码和调用方式的基础上,为它加入新功能
flask的路由就是基于装饰器
Django的信号也可以用装饰器方式注册
django中局部取出csrf认证
为接口记录访问日志
request
'''
2 django的信号用过吗?如何用,干过什么
Django 的信号是一种观察者模式的实现,它允许一个应用程序中的组件在另一个组件发生某些操作时获得通知。在 Django 中,信号通常被用于在某些事件发生时触发一些逻辑,比如当一个模型被保存时自动更新缓存,当一个用户注册成功时自动发送欢迎邮件等等。
使用 Django 的信号需要进行以下步骤:
'''1.导入需要的信号和信号处理函数。
2.定义信号处理函数,该函数通常包含一个 sender 参数和一些其他参数,用于处理信号触发时的逻辑。
3.注册信号处理函数,可以使用 @receiver 装饰器将信号处理函数注册到信号上。在装饰器中指定信号和可选的发送器(sender),以便只有在特定模型的实例被触发时才会调用信号处理函数。'''
在上面的代码中,我们定义了一个名为 my_handler 的信号处理函数,它会在 MyModel 模型实例保存时被调用。@receiver 装饰器将 my_handler 函数注册到 post_save 信号上,并指定了信号的发送器为 MyModel。
除了 post_save 信号之外,Django 还提供了许多其他的信号,如 pre_save、post_delete、pre_delete 等等,您可以根据需要选择合适的信号来完成您的业务需求。
Django的用过的地方:
Django提供的一种通知机制,他是设计模式观察者模式(发布订阅),在发生某种变化的时候,通知某个函数执行。
内置信号:内置信号用起来很简单,只需要写个函数,跟内置信号绑定,当信号被触发,函数就会执行
绑定信号在Django中的方法------>@receiver connect连接
自定义信号:1.定义信号 2.触发信号--->信号.send
3 Dockerfile用过吗?常永命令有哪些
Dockerfile 是 Docker 的镜像构建文件,它是一个文本文件,包含一系列构建镜像所需的命令和参数。使用 Dockerfile 可以自动化地构建 Docker 镜像,从而简化了镜像构建的流程。
Dockerfile 中常用的命令包括:
FROM:指定基础镜像,用于构建新镜像。
RUN:在容器内执行命令,用于安装软件、配置环境等操作。
COPY / ADD:将本地文件或目录复制到容器内。
WORKDIR:设置工作目录,后续的命令会在该目录下执行。
EXPOSE:声明容器内部使用的端口号。
CMD / ENTRYPOINT:设置容器启动后执行的命令或脚本。
标签:__,4.13,函数,迭代,生成器,Django,面试,信号
From: https://www.cnblogs.com/zx0524/p/17318840.html