转载: Kotlin 代理 | Sunmoon 的博客 # Kotlin 代理 Java 中的代理很烦很繁,而 Kotlin 中的代理却看起来很简单。我们来学学 Kotlin 中代理的用法吧。 本文整理自 Delegated Properties。 有些通用类型的属性,尽管我们可以在需要每次都自己实现对于某些常用类型的属性,尽管我们可以在需要用于这些属性时每次都自行实现,但如果能一次性实现所有这些属性,并将其封装到库中可能是更好的方式。比如: 懒加载属性: 这些属性的值在首次使用时才生成 observable 属性:每当属性值发生变化时监听器会收到通知 将属性值保存到...

使用 Python3 解压 gz、tar、tgz、zip、rar 五种格式的压缩文件例子 - lykops - 博客园 gz: 即 gzip,通常只能压缩一个文件;与 tar 结合起来就可以实现先打包,再压缩。 tar: linux 系统下的打包工具,只打包,不压缩。 tgz:即 tar.gz,先用 tar 打包,然后再用 gz 压缩得到的文件。 zip: 不同于 gzip,虽然使用相似的算法,可以打包压缩多个文件,不过分别压缩文件,压缩率低于 tar。 rar:打包压缩文件,最初用于 DOS,基于 window 操作系统。压缩率比 zip 高,但速度慢,随机访问的速度也慢。 #...

转载: Visual Studio Code 常用快捷键 # 主命令框 F1 或 Ctrl+Shift+P : 打开命令面板。在打开的输入框内,可以输入任何命令,例如: 按一下 Backspace 会进入到 Ctrl+P 模式 在 Ctrl+P 下输入 > 可以进入 Ctrl+Shift+P 模式 在 Ctrl+P 窗口下还可以: 直接输入文件名,跳转到文件 ? 列出当前可执行的动作 ! 显示 Errors 或 Warnings ,也可以 Ctrl+Shift+M : 跳转到行数,也可以 Ctrl+G 直接进入 @ 跳转到 symbol (搜索变量或者函数),也可以...

# 数据类型 boolean 只有 true, false; null, 0 不能表示 false # 基本数据类型转换 byte, short, char 之间不会相互转换,它们在计算时会首先转换为 int 类型. 1234567short s = 2;// 变量参与运算时,java 程序不知道具体设个变量在做完运算后会不会超出当前变量范围// 所以先把变量转化为一个更大的长度,short 短整型数据会默认转换为 int 整型数据// s = s + 3; // errorshort s = (short)(s + 3) s1 += 3 // 在使用扩展运算符时,...

Gooey—— 把 CLI 程序变成 GUI | Python One to Million Gooey 是一个 Python GUI 程序开发框架,基于 wxPython GUI 库,其使用方法类似于 Python 内置 CLI 开发库 argparse,因此很容易把一个基于 argparse 的 CLI 应用转换成 GUI 程序。 # 简单的示例 我们首先从一个简单的基于 argparse 库的 CLI 应用开始: 12345678910from argparse import ArgumentParserdef main(): parser =...

# NORMAL 普通模式 进入 vim 默认是 normal 模式(因为大部分情况是浏览而不是编辑)。 normal 模式下可以进行各种命令操作和移动。使用 Esc 可以从 insert 模式回到 normal 模式。 # 光标移动 h 向左移动光标。 j 向下移动光标。 k 向上移动光标。 l 向右移动光标。 # 单词移动 w/W 移动到下一个 word/WORD 开头, e/E 移动到下一个 word/WORD 结尾。 b/B (back word) 回到上一个 word/WORD 开头。 word 指以非空白字符分割的单词,WORD 以空白字符分割的单词。 #...

数据库方言(dialect)是什么? - FooFish-Python 之禅 抛开数据库,生活中的方言是什么?方言就是某个地方的特色语言,是一种区别于其它地方的语言,只有你们这一小块地方能听懂,出了这个地方又是另一种方言。 数据库方言也是如此,MySQL 是一种方言,Oracle 也是一种方言,MSSQL 也是一种方言,他们之间在遵循 SQL 规范的前提下,都有各自的扩展特性。 拿分页来说,MySQL 的分页是用关键字 limit , 而 Oracle 用的是 rownum ,MSSQL 又是另一种分页方式。 123456# MySQLselect * from t_user limit...

在一个应用服务中,对于时效性要求没那么高的业务场景,我们没必要等到所有任务执行完才返回结果,例如用户注册场景中,保存了用户账号密码之后,就可以立即返回,后续的账号激活邮件,可以用一种异步的形式去处理,这种异步操作可以用队列服务来实现。否则,如果等到邮件发送成功可能几秒过去了。 # Celery 是什么? Celery 是 Python 语言实现的分布式队列服务,除了支持即时任务,还支持定时任务,Celery 有 5 个核心角色。 # 1、Task 任务 (Task) 就是你要做的事情,例如一个注册流程里面有很多任务,给用户发验证邮件就是一个任务,这种耗时任务可以交给 Celery...

转载: Jafrog’s dev blog # Colors In Terminal If you use terminal on a daily basis I bet you played with some color settings at least once. Colorizing ls output, shell prompt, git logs - those are very common tasks. And it’s not surprising as color helps us parse information faster, pay attention to...

任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建、初始化、使用、垃圾回收,不同的阶段由不同的方法(角色)负责执行。 定义一个类时,大家用得最多的就是 __init__ 方法,而 __new__ 和 __call__ 使用得比较少,这篇文章试图帮助大家把这 3 个方法的正确使用方式和应用场景分别解释一下。 关于 Python 新式类和老式类在这篇文章不做过多讨论,因为老式类是 Python2 中的概念,现在基本没人再会去用老式类,新式类必须显示地继承 object,而 Python3 中,只有新式类,默认继承了...