首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

截图插件Gitee使用了

前言 上周六有个群友@说Gitee反馈模块新增了截图功能,就去体验了下,发现他们用就是插件,本文就跟大家分享下这个插件,欢迎各位感兴趣开发者阅读本文。...gitee反馈 影响体验一些小问题 上周二,从GitHub来了个网友,加了微信,给我插件提了两个issues,因为周内没时间处理这些问题,就计划周末统一处理下插件issues。...getDrawBoundaryStatus(currentX, currentY, cutBoxPosition) ) return; getDrawBoundaryStatus函数实现如下所示...,就一遍又一遍体验QQ截图,观察他是怎么做,突然,灵感惊现,既然有裁剪框坐标和大小信息,重新绘制一下这个裁剪框不就好了,裁剪框四周8个可操作点删除后,就可以删掉生成图片时优化那8个点计算逻辑...是神奇程序员,一位前端开发工程师。

4.6K60
您找到你想要的搜索结果了吗?
是的
没有找到

为什么递归函数返回None

问: 有一个调用自己函数: def get_input(): my_var = input('Enter "a" or "b": ') if my_var !...: Type "a" or "b": a got input: a 但是,如果输入别的东西,然后输入 "a" 或 "b",我会得到这样结果: Type "a" or "b": purple You...Type "a" or "b": a got input: None 不明白为什么 get_input() 函数返回是 None,因为它本应只返回 my_var。这个 None 是从哪里来?...该如何修复函数呢? 答: 它返回 None 是因为当你递归调用它时: if my_var != "a" and my_var !...因此,尽管递归确实发生了,但返回值却被丢弃了,然后你会从函数末尾退出。在函数末尾退出意味着 Python 会隐式地返回 None,就像下面这样: >>> def f(x): ...

8710

为什么用了Redis之后,系统性能却没有提升

很多时候,我们在面对一些热点数据时候,通常会选择将热点数据放到redis中,以减少数据库查询,减轻数据库压力。但是如果我们使用redis方式不对,那么可能导致系统性能不升反降。...使用缓存场景不正确 我们知道redis是基于内存实现,所以速度会非常快,我们通常会将热点数据放到redis中,以减少对数据库压力。...但是我们为了保证缓存与数据库数据一致性,在数据进行修改时候,我们就需要对缓存进行维护。 所以如果数据变更很频繁的话,就需要对缓存进行频繁维护,缓存命中率也会特别低。...缓存使用场景应该是修改频率不高,查询频率较高场景。如果使用redis场景不对,通常会导致我们得不偿失。 2. key设计不当导致产生了bigkey 什么是bigkey?...如果我们选择appendfsync always的话,虽然数据安全性高,但是每次写入都要刷盘会导致redis性能很大程度降低,所以我们一般会选择appendfsync everysec策略来对数据进行持久化

1.8K10

Pandas用了一年,这3个函数最爱……

02 eval 实际上,eval是一个Python基础函数,用于执行字符串形式计算表达式,例如以下简单实例: ?...注意事项: eval支持接收一个inplace参数控制原地创建新变量或者返回新dataframe;也支持仅用表达式而不设置新变量名,此时返回数据为series格式,如下图所示; eval表达式中也支持调用函数执行复杂计算...以及[]等等,此时如果灵活运用query函数,那么会便捷不少。...例如,下述例子中C C列中有个空格,直接用于字符串表达式会存在报错,此时可使用反引号加以修饰,同时查询条件中应用了@修饰符引用外部变量。当然,与eval中类似,这里当然也可以用f字符串修饰引用。...注意事项: query中也支持inplace参数,控制是否将查询过滤条件作用于dataframe本身; 与eval类似,query中也支持引用外部函数

1.8K30

一日一技:为什么网站知道爬虫使用了代理?

在公众号粉丝群里面,经常有同学问:为什么自己爬虫明明设置了代理,但一访问网站就能被发现。总结了几种常见情况。...https://httpbin.org/ip', proxies={'http': 'http://IP:port'}).text print('使用代理:', resp) 运行效果如下图所示: 为什么使用了代理以后...如果大家有兴趣的话,再写一篇文章来讲。 你代理IP是服务器IP 有很多代理供应商,他们批量采购云服务器来搭建代理服务。例如国内供应商会采购阿里云、腾讯云、华为云服务器来搭建代理。...国内云服务供应商服务器IP地址是否公布过不太清楚,但他们IP范围肯定是跟家用IP不一样。...服务器供应商IP池污染 有些人爬虫写得非常垃圾,自以为有代理就无所畏惧,爬虫请求漏掉百出,网站即使不检查IP频率,也可以从其它特征知道这是爬虫请求,于是网站就会连带着这个代理IP一起封掉。

1.1K20

为什么要创建一个不能实例化

但如果有一天,你发现写了这样一个类: class People: def say(self): print(f'叫做:{self.name}') def __new...一个不能初始化类,有什么用? 这就要引入我们今天讨论一种设计模式——混入(Mixins)。 Python 由于多继承原因,可能会出现钻石继承[1]又叫菱形继承。...为了保留多继承优点,但又摒除缺点,于是有了混入这种编程模式。 Mixins 是一个 Python 类,它只有方法,没有状态,不应该被初始化。它只能作为父类继承。...不同 Mixin 方法互不重叠。...显然,这样写会报错,因为两个类实例是不能比较大小: 但在现实生活中,当我们说 某人比另一个人大时,实际上是指某人年龄比另一人年龄大。

3.4K10

OpenCV论道:为什么伽马校正函数只有一行?

大家好,又见面了,是你们朋友全栈君。...最近在用 OpenCV 识别棋盘棋子,基本思路是这样:先转灰度,再做高斯模糊和二值化,此时棋盘格上有的有棋子,有的无棋子;通过迭代腐蚀,消去棋子,再迭代膨胀回来,就得到了一个纯净棋盘;识别棋盘,标定位置...就是提升图像暗部细节。这与加曝处理是不一样,加曝一般不区分图像暗部和亮部。...奇怪是,在网上搜到伽马校正函数看起来都很复杂,即便是 python 写,也都得十几行甚至几十行,可我写伽马校正函数只有一行。为什么会这样呢?是理解不对吗?...、伽马校正(gamma=2)灰度二值化效果、伽马校正(gamma=3)灰度二值化效果: 对于彩色图片,这个伽马校正函数依然有效。

1K20

为什么校招面试中“线程与进程区别”老是问到?该如何回答?

除此之外,推荐看一下阮一峰一篇博客:进程与线程一个简单解释,用图解释十分生动形象。 为什么这个问题是面试高频? 既然这个问题是面试当中会被经常问到,所以我去网上找一个答案,背出来不就好了。...我们来分析一下为什么众多面试官老是问这个问题,他应该并不是想听到一个对书本上概念重复。 那么,他究竟想考什么?...在这里插入图片描述 同理,上图我们知道线程包含: 栈(堆栈):主线程main函数、进行函数调用参数和返回地址、局部变量等内容都会被压入栈内 PC(Program Couner):程序计数器,PC指针指向代码所在内存地址...总结 总之,如果上述内容你都了解,那肯定是不怕问到(大佬,请收下膝盖);如果看了此篇文章之后,你能答出个大概,相信面试官也会放过你,毕竟,我们也真的不是背书机器。...如果你能看到这,能否给我点个关注,点个赞让也收到鼓励。如果觉得内容有误,也欢迎评论指出。 注意,要敲黑板啦。 ? th (2).jpeg 进程是什么?它指的是一个运动中程序。

1.1K30

函数注册机制为什么会在嵌入式固件开发中应用如此广泛?

机制另一个好处是,在程序执行期间可以动态更改调用函数。 1、C语言中 不同编程语言有不同实现回方式。...有两种不同函数用于处理接收到字节事件。在初始化函数中,函数指针分配了应该使用函数地址用于处理事件。这是注册回函数操作。.../*指向回函数函数指针*/ uint8_t ( *Receive_Byte) ( void ); /* * 简化初始化函数 * 这里函数指针分配了一个函数地址(注册回函数) */ void...它是使用数据类型元素数组实现。数据类型是具有成员和成员结构。用于为寄存器中每个回函数分配一个标识(唯一编号)。函数指针分配与唯一关联函数地址。...//具有特定函数代码函数如何调用示例 uint8_t execute_callback(uint8_t FuncCode, uint8_t * p_data_buf, uint16_t len

1.8K50

月薪20KJava程序员很厉害?八年程序猿却说:裁只用了5分钟

八年程序猿却说:裁只用了5分钟 感觉自己已经废掉了,一直在金融公司从事Java开发工作,之前薪资18K ,深圳。...月薪20KJava程序员很厉害?八年程序猿却说:裁只用了5分钟 为什么不建议她选择薪酬最高offer,反而去选择月薪20Koffer呢?...四、建立技术体系 在群里有这样一套技术学习体系供大家提供学习思路: ? 月薪20KJava程序员很厉害?八年程序猿却说:裁只用了5分钟 ? 月薪20KJava程序员很厉害?...八年程序猿却说:裁只用了5分钟 ? 月薪20KJava程序员很厉害?八年程序猿却说:裁只用了5分钟 ? 月薪20KJava程序员很厉害?八年程序猿却说:裁只用了5分钟 ?...月薪20KJava程序员很厉害?八年程序猿却说:裁只用了5分钟 2018已经过去过去,2019还想一成不变吗?

81420

Php公众号40029,微信公众平台开发:出现40029 code无效

大家好,又见面了,是你们朋友全栈君。 本人写了一段用户授权代码,出现错误:40029 不合法oauth_code 问题。 上网找了答案说是调用了两次请求,发回code相同,所以失效。...但是就是不知道为什么,我会发出两次请求。...wechat_redirect”%(APP_ID,REDIRECT_URI)) return HttpResponseRedirect(url) else: return HttpResponse(u’关注成功’) 授权后,回函数获取...code,进行调用下面的函数进行请求获取access_token代码如下: def getUserByCode(APP_ID,APP_SECRET,code): url = “https://api.weixin.qq.com...类型转化为string类型 arr = json.loads(jsons) return arr 请问各位:这样写问题出现在哪?

1K10

android监听View加载完成示例讲解

通过百度得知View有一个监听函数,亲测使用有效,特此记录,方便日后查阅。...中获取GridView高度,在这个回之前获取高度都是0 //处理完后remove掉,至于为什么,后面有解释 gv_test.getViewTreeObserver() .removeOnGlobalLayoutListener...onGlobalLayout,很奇怪,为什么是三次?...后来有一次屏幕锁了,发现调用了两次。经过测试,app退到后台后重新进入会调用一次,屏幕锁屏后重新打开会调用两次(小米两次,努比亚1次),其中一次猜测是控件可见性改变了。...解决办法就是第一次回后,就把回remove掉,如:gv_test.getViewTreeObserver() .removeOnGlobalLayoutListener(this); 如有错误,敬请雅正

2.8K10

Vue0.11版本源码阅读系列五:批量更新是怎么做

顾名思义,batcher是批量意思,所以就是批量更新,为什么要批量更新呢,先看一下下面的情况: 出来了 <div v-if="show && true"...批量很容易理解,都放到一个队列里,最后一起执行就是批量执行了,但是要理解MutationObserver或者setTimeout回调为什么能异步调用就需要先来了解一下JavaScript语言里事件循环...微任务会在宏任务之前执行,即使宏任务添加到队列里。...show值都会触发这两个watcher更新,也就是会调两次batcher.push(this)方法,第一次调用后会执行_.nextTick(flush)注册一个回,连续两次修改show值,会调用四次上述提到...batcher.push(this)方法,因为重复添加过滤掉了,所以最后会有两个watcher添加到队列里,以上这些操作都是同步任务,所以是连续被执行完,等这些同步任务都被执行完了后就会把刚才注册

41820

逛到底层看NIO零拷贝

128(0x8010进制)缩写,我们一般叫80中断,当调用了这个指令之后,CUP会停止当前调度,保存当前执行中线程状态,然后在中断向量表中寻找 128代表函数,将之前写到寄存器中数据...(write /参数)当作参数,传递到这个回函数中,由这个回函数去寻找对应系统函数write进行写出操作!...为什么不是直接拷贝,而是多了一步记录文件信息步骤呢?...而且NIO中每次写入写出不在是以一个一个字节写出,而是用了一个Buffer内存块方式写出,也就是说只需要告诉CPU 这个数据块数据开始索引以及数据偏移量就可以直接读取,但是JVM通过垃圾回收时候...我们在创建这个虚引用时候传入了一个队列,在这个对象回收时候,引用对象会进入到这个回

25040

驳《前端常见Vue面试题目汇总》

里放入新函数 Promise.resolve().then(flushCallbacks) } } 测试一下: // 第一次调用 then方法已经用了 但是 flushCallbacks...// 此时 callbacks 里 3 个函数依次执行。...建议真正想看模板编译后原理同学,可以去尤大开源vue-template-explorer 网站输入对应模板,就会展示出对应 render 函数。...(diff 算法详解) 组件中data为什么函数 因为组件是用来复用,JS里对象是引用关系,这样作用域没有隔离,而new Vue实例,是不会被复用,因此不存在引用对象问题 这句话反正压根没听懂...这个问题同样举个例子来方便理解,假设我们有这样一个组件,其中 data 直接使用了对象而不是函数: var Counter = { template: `<span @click="count

9910

函数节流与防抖

函数节流与防抖 在最近面试中,有问到这个问题,当时没有反应过来,整理一下,供大家参考 函数防抖 函数防抖,就是指触发事件后在一定时间内函数只能执行一次,如果在这段时间内再次触发,则会重新计时,...直到事件触发后一定时间内不再触发 简单来说,就是在连续多次触发事件时,只会执行最后一次 因此,实现函数防抖关键在于判断一定时间内事件是否触发 实现代码 这一部分是用来测试盒子以及事件触发函数...,要尽量避免污染全局变量,因此采用了闭包,将t作为function私有变量,不污染全局变量 最后一个问题 为什么要用apply呢?...,如果两次触发事件时间差大于设定时间,则直接执行,如果小于,则等待执行。...---- 下次面试时提问到一定会答出来!

41830
领券