使用Selenium打开Chrome闪退的问题
使用Selenium打开Chrome闪退的问题检查驱动http://chromedriver.storage.googleapis.com/index.html 下载驱动
将chromedriver.exe放在python的安装目录下
发现打开浏览器运行完程序后,浏览器会关闭
解决办法url = 'https://www.baidu.com's = Service(r"C:\python\chromedriver.exe")option = webdriver.ChromeOptions()option.add_experimental_option('detach', True)driver = webdriver.Chrome(service=s, options=option)driver.get(url)
Downie4 使用说明
安装Downie4 app
解压Downie4浏览器扩展压缩包
在Chrome浏览器的插件扩展中心选择刚才解压的文件夹
打开对应的视频网站,然后在插件中选择Downie,会使用Downie app打开
如果不能解析视频,可以选择Downie的自定义提取功能打开对应的网站。
在Windows下安装Mac虚拟机
开启虚拟化**步骤:关机 –> 重启 –> 进入BIOS界面 –> 开启虚拟化 **
具体是AMD的还是Intel的CPU,请自行查阅文档设置.
设置完成后,可以在任务管理器 – 性能 – CPU里面查看虚拟化是否开启
同时禁用Hyper-V和Credential Guard。
MacOS镜像下载镜像可以自行从苹果官网下载
已经上传12.2的系统至阿里网盘
安装VMware虚拟机已上传至阿里网盘,可自行激活
VMwareworkstation16.0.0 https://www.aliyundrive.com/s/9uDsraHjsoB 提取码: 40oe 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。
创建MacOS虚拟机打开VMware Workstation,在选项卡文件,新建虚拟机
选择刚才下载的iso镜像文件
如果没有解锁过VMware,选择操作系统的时候是不会看到Apple Mac OS X(M)这个选项的。
这里我们用到一个github上的解锁神器auto-unlocker
https:/ ...
Kotlin协程
Kotlin协程协程的作用域构建器coroutineScope与runBlocking
runBlocking是常规函数,而coroutineScope是挂起函数。
它们都会等待其协程体以及所有子协程结束,主要区别在于runBlocking方法会阻塞当前线程来等待,而coroutineScope只是挂起,会释放底层线程用于其他用途
ChatGPT注册使用教程
1. 注册ChatGPT账号
将IP换成国外IP
打开 https://chat.openai.com/auth/login,并使用自己的邮箱注册,我这里使用的是gmail
打开邮箱,验证
2. 短信接码注册ChatGPT账号,需要做短信验证,这里我使用的是https://sms-activate.org/
使用支付宝充值0.5美元,在左侧的OpenAI里面搜索选择的国家,我使用的泰国,如果没有收到短信,可以在有效期内取消一次。
Kotlin基础 -- 协变和逆变
Kotlin基础 – 协变和逆变Kotlin 里面:
in 是指可以写但是不可以读,是消费者,逆变;
out 是只可以读不能写,是生产者,协变;
对应Java
out 协变 对应 ? extends 只能读取不能修改 生产者
in 逆变 对应 ? super 只能修改不能读取 消费者
outout(协变),如果泛型类只将泛型类型作为函数的返回(输出),那么使用out,可以称之为生产类/接口,因为它主要是用来生产(produce)制定的泛型对象。
我的理解:
open class TV { open fun turnOn() {}}class XiaoMiTV1: TV() { override fun turnOn() {}}class Controller<T> {}
fun main() { //这里编译器会报错,Type mismatch: inferred type is TV but XiaoMiTV1 ...
设计模式之美--(学习导读)03 面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
设计模式之美–(学习导读)03 | 面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?在上一节课中,我们讲到,要具备编写高质量代码的能力,你需要学习一些编程方法论,其中就包含面向对象(我们可以把它看成一种设计思想)、设计原则、设计模式、编程规范、重构技巧等。而我们整个专栏的内容也是围绕着这几块展开讲解的。所以,今天我就先来简单介绍一下这几个概念,并且说一说它们之间的联系。
今天的内容相当于专栏的一个教学大纲,或者说学习框架。它能让你对整个专栏所涉及的知识点,有一个全局性的了解,能帮你将后面零散的知识更系统地组织在大脑里。
话不多说,我们就一块来看一下,接下来的这 8 个月我们到底要学习哪些内容吧!
面向对象现在,主流的编程范式或者是编程风格有三种,它们分别是面向过程、面向对象和函数式编程。面向对象这种编程风格又是这其中最主流的。现在比较流行的编程语言大部分都是面向对象编程语言。大部分项目也都是基于面向对象编程风格开发的。面向对象编程因为其具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式编码实现的基础。
所以,在专栏的最开始,我们 ...
设计模式之美--(学习导读)02 从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?
在我的工作经历中,每当同事评论起项目代码质量的时候,听到的最多的评语就是:“代码写得很烂”或者“代码写得很好”。用“好”“烂”这样的字眼来描述,非常地笼统。当我具体问到底如何烂、如何好的时候,尽管大部分同事都能简单地罗列上几个点,但往往都不够全面、非常零碎,也切不中要害。
当然,也有一些工程师对如何评价代码质量有所认识,比如,好代码是易扩展、易读、简单、易维护的等等,但他们对于这些评价的理解往往只停留在表面概念上,对于诸多更深入的问题,比如,“怎么才算可读性好?什么样的代码才算易扩展、易维护?可读、可扩展与可维护之间有什么关系?可维护中‘维护’两字该如何理解?”等等,并没有太清晰的认识。
对于程序员来说,辨别代码写得“好”还是“烂”,是一个非常重要的能力。这也是我们写出好代码的前提。毕竟,如果我们连什么是好代码、什么是烂代码,都分辨不清,又谈何写出好代码呢?
所以,今天我们就聊一聊关于代码质量评判的相关问题,希望你在学完今天的内容之后,对代码质量的评判有个更加清晰、更加透彻的认识和理解。
如何评价代码质量的高低?实际上,咱们平时嘴中常说的“好”和“烂”,是对代码质量的一种描述。“好”笼 ...
设计模式之美--(学习导读)01 为什么说每个程序员都要尽早地学习并掌握设计模式相关知识?
我相信,很多程序员都已经意识到基础知识的重要性,觉得要夯实基础,才能走得更远,但同时对于如何将基础知识转化成开发“生产力”仍然有些疑惑。所以,你可能看了很多基础的书籍,比如操作系统、组成原理、编译原理等,但还是觉得很迷茫,觉得在开发中用不上,起码在平时的 CRUD 业务开发中用不上。实际上,这些基础的知识确实很难直接转化成开发“生产力”。但是,它能潜移默化地、间接地提高你对技术的理解。
不过,我觉得,设计模式和操作系统、组成原理、编译原理等这些基础学科是不一样的。它虽然也算是一门基础知识,但是它和数据结构、算法更像是一道儿的,相比那些更加基础的学科,设计模式能更直接地提高你的开发能力。我在开篇词里也说了,如果说数据结构和算法是教你如何写出高效代码,那设计模式讲的是如何写出可扩展、可读、可维护的高质量代码,所以,它们跟平时的编码会有直接的关系,也会直接影响到你的开发能力。
不过,你可能还是会觉得设计模式是把屠龙刀,看起来很厉害,但平时的开发根本用不上。基于这种观点,接下来,我们就具体地聊一聊,我们为什么要学习设计模式?
1.应对面试中的设计模式相关问题学习设计模式和算法一样,最功利、最直 ...
Android Studio 导入项目错误 has been compiled by a more recent version of the Java Runtime
错误日志:
has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
原因:JDK版本不对,对照关系如下
50 --> JDK1.651 --> JDK1.752 --> JDK1.853 --> JDK 954 --> JDK 1055 --> JDK 1156 --> JDK 1257 --> JDK 1358 --> JDK 1459 --> JDK 15