首页 > 其他分享 >面试题

面试题

时间:2023-03-16 17:23:47浏览次数:101  
标签:__ 触发 面试题 缓存 对象 数据库 方法

目录

可变类型与不可变类型
可变类型:列表,字典,集合
不可变类型:字符串,元组,整型,浮点型
常用的魔法方法
python中的魔法方法,定义在类中的一些__开头的方法,在某种情况下会自动触发

__init__:类加括号产生对象,对对象进行初始化的时候触发
    
__new__:类加括号产生对象,调用元类中的__new__产生一个空对象,这个方法有返回值,再触发__init__对对象进行初始化
    
__call__:对象加括号的时候自动触发
    
__getattr__:对象点一个不存在的属性的时候自动触发
    
__setattr__:对象点属性等于一个值的时候自动触发
 
__getitem__:对象['属性'],属性不存在的时候自动触发
 
__setitem__:对象['属性']=值的时候自动触发
 
上下文管理器:只要重写了__enter__和__exit__方法,就具备这个能力
    with 对象 as xx:
        1.写了一行行代码,这个时候就自动触发__enter__
    2.上下文结束,这里写了一行代码,触发__exit__,做一些资源清理工作
类中的装饰器
-classmethod:绑定给类的方法,类调用的时候会直接将类作为第一个参数传入,对象也可以调用,对象在调用的时候会将产生对象的类,作为第一个参数传入
 
-staticmethod:类中定义的静态方法,类或者对象调用的时候有几个参数传几个参数
 
-没有写装饰器的方法,是绑定给对象的方法,对象在调用的时候会把对象作为第一个参数传入

-propty:把方法伪装成属性,这样调用这个方法的时候直接调名字就可以,不用加括号
  
-类中隐藏方法或者属性:__属性,__方法,但是大家统一默认隐藏写一个_就可以了

双写一致性

出现原因:因为有些接口访问的次数比较频繁,如果每次方法接口都要查询数据库,那么对资源来说是一种浪费也比较占用数据库资源,特别是当并发比较高的时候会造成数据库的崩溃,所以这些接口访问的资源我们可以放到redis缓存数据库中,每次访问这个接口资源直接去redis缓存数据库中拿就可以啦,但是这样如果我们对mysql数据库进行数据的新增或者删除,而接口访问的是redis数据库,这样就会有一个数据的误差
  
解决办法:
    1.定时更新redis缓存数据库
    2.修改数据后,删除缓存数据
    3.修改数据,更新缓存
 
我们使用的是使用celery开启一个定时任务来进行数据的更新,虽然会有一定的延迟性,但是对于图片的接口影响不会太大
断点续传
上传途中如果中断会在本地生成一个保存中断位置的文件,下次上传的时候直接读取中断位置文件基于该位置继续上传
内网穿透
内网穿透,即内网映射,内网ip端口映射到公网,让外网访问内网的实现
可以采取的办法:
  开源的:frp,ngrok
  收费的:花生壳,神卓互联
缓存击穿

标签:__,触发,面试题,缓存,对象,数据库,方法
From: https://www.cnblogs.com/zhanghong1229/p/17223427.html

相关文章

  • mysql面试题
    1.binlog的3种格式,类型对比  statement,row,mixed   setsessionbinlog_format='statement';  showvariableslike'binlog_format'; showmasterstatus;......
  • js 高频面试题详解
    一:js中的变量提升例1a=2;vara;console.log(a);答:2解析:它会将当前作用域的所有变量的声明提升到程序的顶部,上述代码等价为:vara;a=2console.log(a);//......
  • 基础面试题
    软件测试基础总结1软件的生命周期?根据市场需求--制定项目计划--进行需求分析--设计阶段--程序编码--软件测试--运行维护根据线上运行情况以及市场需求制定下......
  • 某大厂面试题:说一说Java、Spring、Dubbo三者SPI机制的原理和区别
    大家好,我是三友~~今天来跟大家聊一聊Java、Spring、Dubbo三者SPI机制的原理和区别。其实我之前写过一篇类似的文章,但是这篇文章主要是剖析dubbo的SPI机制的源码,中间只是......
  • 拿到大厂前端offer的前端开发是怎么回答面试题的
    什么情况会阻塞渲染?首先渲染的前提是生成渲染树,所以HTML和CSS肯定会阻塞渲染。如果你想渲染的越快,你越应该降低一开始需要渲染的文件大小,并且扁平层级,优化选择器。然......
  • 前端常考面试题整理
    display:none与visibility:hidden的区别这两个属性都是让元素隐藏,不可见。两者区别如下:(1)在渲染树中display:none会让元素完全从渲染树中消失,渲染时不会占据任何空间;vi......
  • 2023秋招前端面试必会的面试题
    判断数组的方式有哪些通过Object.prototype.toString.call()做判断Object.prototype.toString.call(obj).slice(8,-1)==='Array';通过原型链做判断obj.__proto......
  • 前端经典面试题(有答案)
    作用域作用域:作用域是定义变量的区域,它有一套访问变量的规则,这套规则来管理浏览器引擎如何在当前作用域以及嵌套的作用域中根据变量(标识符)进行变量查找作用域链:作用域......
  • 你需要知道的webpack高频面试题
    谈谈你对webpack的看法webpack是一个模块打包工具,可以使用它管理项目中的模块依赖,并编译输出模块所需的静态文件。它可以很好地管理、打包开发中所用到的HTML,CSS,JavaScr......
  • 2023秋招前端面试必会的面试题
    浏览器存储我们经常需要对业务中的一些数据进行存储,通常可以分为短暂性存储和持久性储存。短暂性的时候,我们只需要将数据存在内存中,只在运行时可用持久性存储,可以......