自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 用go写一个最简单的http server

代码如下package mainimport ( "net/http")var ( webappAddr ="0.0.0.0:9393")func main() { http.HandleFunc("/index",IndexHandle) http.ListenAndServe(webappAddr,nil)}func IndexHandle(res http.ResponseWriter, req *http.Request){ sayTo :=

2021-09-03 18:18:35 244

原创 关闭goland的参数提醒

settings > Editor > Appearance 配置页,将Show parameter name hints 项的勾选去掉。 这样设置之后就能取消掉参数名提示了

2021-09-03 17:58:41 1159

原创 Go通过反射来做事件通知

事件中心的作用,可以构造一种经典的“通知”,“处理”模型,处理器通过订阅来感知事件,事件发布器通过准备参数和事件名称来广播事件。这样事件发布器就可以zhi

2021-06-15 19:58:55 217

原创 python string encode

python的string有个很强大的功能,就是decode和encode,可以用来解决乱码,字符的数据传递等功能。官方简介是这样的

2021-05-29 18:36:51 352

原创 Go tour里有意思的练习题(用自定义error练习接口接收器)

练习题https://tour.go-zh.org/methods/20答案如下:package mainimport ( "fmt" "math")type ErrNegativeSqrt float64func (e ErrNegativeSqrt) Error() string{ return fmt.Sprint("cannot Sqrt negative number: %d",float64(e))}func Sqrt(x float64) (float64

2021-05-19 16:17:06 122

原创 Go的协程和管道

Go有个简单的线程模型,叫做协程。为这个协程配套的简易版“数据同步”叫管道或者信道在go tour上有两个很有特色的例子:https://tour.go-zh.org/concurrency/2package mainimport "fmt"func sum(s []int, c chan int) { sum := 0 for _, v := range s { sum += v } c <- sum // 将和送入 c}func main() { s :=

2021-05-19 15:57:46 154

原创 Go Effective Go-Intruduction

介绍(Introduction)Go是一种新的语言。虽然它从已有的语言中带来了概念,但是它非同寻常的特性使Effective Go程序在编写角度上看起来相当的不同。一个直白的C++或者java程序翻译成Go,不大可能会产生很好的效果,java语言用Java编写而不是Go。在别的方面,在Go的角度却可以产生一个非比寻常的程序。也就是说,写Go,这对理解它的属性与风格都非常重要。理解Go代码风格的方式,比如,命名,格式化,程序构建,还有别的。这样可以保证你的代码可以快速的被别的Go代码编写者理解。.

2021-05-14 16:15:56 158

原创 Go interface

Go语言也有面向对象的一面,实现的比较先进且优雅,代码角度来看实现了完全的“数据”“逻辑”分离。简介和对比可以看一下这篇文章,写的详尽生动。以下是使用方法:首先打开Goland的go mod能力,因为有文件夹(package概念)所以打开会给import增加更强的能力。在工程目录下执行go mod inite 命令,的到一个go.mod文件,和package main放置在同目录下开始编写代码:main,main package以及工程目录这样建立tools下的interfa

2021-05-02 14:41:56 75

原创 Python multiprocessing.Pool

python使用多进程,有一个非常简单的方法,使用multiprocessing库,而其中最简单的类,Pool,下面就展示一下如何使用,以及效果先解释主函数:Pool是用来初始化进程池的,atexit.register在程序退出的时候注销掉进程池(在这个主函数里面也可以用defer替换)。_join是一个私有函数,作用是等待所有的工作进程返回。_sleepdo_proc是一个模拟子进程工作的,可以设置工作时间isleep,myname用来区分工作子进程。_join就是等待所有的task返

2021-05-01 11:13:29 160

原创 Python importlib.resources加载文件

python在运行时读取配置,通常app使用本地json方式,但是裸写open close文件,或者单纯的采用with open as file方式,之前有说到。虽然方便,但是在app维护后期,尤其是需要打入配置补丁的时候,会碰到不少问题。python库提供了一个importlib来专门处理这种需求,使用起来也很简单:当前工作目录结构下,首先需要又一个resources目录,存放需要使用importlib加载的文件。使用过程就可以按照上面的代码,使用importlib.resources.i

2021-04-29 14:39:20 2102

原创 Python的with as

python里面有个很好用的语法,专门来做“拥有上下文”对象的获取与释放,就是with as。对比open ... close来说,它的好处是预防了“打开忘记关闭”的问题,我们看下使用简单的说,使用open的时候,会产生一个文件的上下文,一定要记得关掉,但有些编程者会忘掉编写close代码,这样就造成了上下文泄漏。但是with as会在with代码块儿执行结束后,就自动的把as的上下文直接关闭,而且语法with必定检查as,这样就避免了上下文泄漏的问题。好处显而易见,但那些调用是会产生上下文

2021-04-28 12:23:54 221

原创 python好用的文件操作库shutil(5)

这次应该是shutil的最后一部分了,说一下make_archive,压缩文件夹,它可以支持"zip", "tar", "gztar","bztar", "xztar"。使用方式是如下这样:把cpdir_src目录压缩生成一个叫做src的文件,采用xztar格式进行,压缩过程的日志输出到get_logger里面(ps:这里面如果对get_logger函数感兴趣的同学,可以移步到这里)被压缩目录的结构:压缩后文件的位置,注意,新产生的压缩包,是py的运行目录,而不是被压缩目录。还有问.

2021-04-25 15:51:25 353

原创 python好用的文件操作库shutil(4)

继续说shutil另外一个好用的函数copytree,它可以复制整个的文件树,如果组合传入ignore参数,还可以忽略复制某些文件或者文件夹将要被复制的文件树是这样的我的使用方式是这样分别忽视了一个文件夹second_2和一个文件MyCADGun.FCStd1,复制后的结果:...

2021-04-21 14:53:20 62

原创 python好用的文件操作库shutil(3)

上一次说到了shutil中copystat使用,这一次说说最常用的copy文件,shutil里面的复制文件函数主要是copy和copy2,它们的区别主要是copy内部使用了copymode,而copy2内部使用了copystatcopymode在mac机器上是没有用的,因为没有lschmod命令。那么就使用一下copy和copy2,看看具体的区别吧。小结一下1.copy2可以复制文件的访问、创建时间属性给目标文件,而copy则不行。2.copy2和copy都不能复制用户属

2021-04-20 16:38:16 435

原创 python好用的文件操作库shutil(2)

这次使用一下shutil的copystat函数,他可以用来复制文件的访问时间(access time)和修改时间(modification time)给到另外一个文件。先熟悉两个mac terminal上的工具stat -x *.mp3列出当前目录下所有mp3的文件属性touch -mt YYYYMMDDHHmm x.x修改x.x文件的modification time到YYYY年,MM月,DD日,HH小时,mm分钟touch -t YYYYMMDDHHmm x.x修改x.x

2021-04-19 16:05:58 111

原创 python好用的文件操作库shutil(1)

shutil库是python自带的很好用的文件处理库,包含了诸如复制文件,查询目录剩余空间,更改文件属性等操作,是python入门的基础之一这次使用一下【chown,disk_usage,which】使用前:我的用户组代码:调用代码:调用后:因为有权限修改,所以使用sudo...

2021-04-15 16:02:56 130

原创 Python类的单元测试

Python类的单侧和函数的测试基本流程是一样的:在pycharm里面有右键的快捷菜单Go To-Test,然后创建一个测试文件,最好和被测py文件在同意目录(同个包)下。导入TestCase框架后,直接测试born,因为被测试类使用了《Python类继承之虚函数》的animal代码,所以就没有在这里重复黏贴内容,看不太懂的伙伴可以交叉两篇文章去看。设置运行方式,script file,然后cover方式执行,就可以看到覆盖率和执行结果了。...

2021-04-14 14:29:14 175

原创 Python类继承之虚函数

虚函数在C++里面广泛使用,也为后面派生的一种独特类型interface奠定了编程界的基础,在python中也有类似的概念(抽象类),使用如下:抽象类可以继承abc,抽象接口使用@abstractmethod以及pass来描述。继承抽象类而没有实现抽象接口,如果实例化就会提示错误正常实现抽象接口,并且使用是如下这样的:小结以下:1.抽象类,要继承abc,抽象接口使用@abstractmethod以及pass2.继承抽象类的子类,在实例化前必须实现抽象接口,

2021-04-13 14:38:52 4650

原创 python泛化参数的使用

Python是弱类型的解释性语言,也就是泛化的,所以在变量定义的时候不用指明类型,这给编程人员了很大的灵活度,但要注意使用才能不出错。这是一个简单的函数按照如下的调用方法,那么会打印出如下结果:形参会在赋值的那一刻,就变成新的局域变量,而在函数返回的时候,就生命周期结束,不影响调用方的传入。但是同样的事情【不】会发生在list上:可以看出来,一个传入函数的list类型形参,在函数体内的修改,并没有产生新的变量,而是直接修改了传入参数的变量内容,完成了某种意义上..

2021-04-12 16:19:31 463

原创 goland同目录下单元测试提示函数undefined

问题现象:tools目录下面有被测和测试文件,同属于一个包,右键运行单元测试的时候提示函数undefined,被测函数是导出状态(开头大写),但是命令行却能成功执行go test -v需要操作是,叫工程有个go mod,然后执行go build,因为goland依赖mod来认识工程go mod init hellogo build编译好的go文件会变成一个二进制,显示在工程的与go.mod同级目录(建议手动删掉它,不然goland依然不会更新对工程的认知)。然后...

2021-02-11 11:18:40 1092

原创 Python单元测试unittest

对要测试的函数或者类函数右键Go To -> Test ->Create New Test,自动创建一个测试类修改内容from unittest import TestCasefrom commander import create_argument_parserclass Test(TestCase): def test_create_argument_parser(self, parameters, project_check, book_check, page_

2021-02-07 17:17:00 196

原创 python -m在pycharm里面解决relative import with no known parent package

python -m方式运行,简而言之按照模块方式运行。有的开源软件import的方式会使用如下这样(相对路径import):from .commands import create_argument_parserfrom .utils.configuration import load_configuration执行时就会出现这样的问题,原因是找不到包目录(抽象且无法解决),但如果通俗易懂方法解释应该是“只要采用相对路径import的代码请按照模块化运行”:ImportError: att

2021-02-03 16:56:52 1007

原创 python的ArgumentParser使用

ArgumentParser是python用来标准化处理sys.argv#!/usr/bin/env python# coding: utf8from argparse import ArgumentParserOPT_BOOK = { 'dest': 'book', 'nargs': '+', 'help': 'Which book do you want study', 'required': True}OPT_PAGE = { 'dest'

2021-02-02 18:19:30 2346

原创 pycharm在import提示Unresolved问题解决

问题如下解决方法:pycharm不知道工程中的src目录代表“源码”,所以不会加载解读器。Preferences->Project:x->Project structure->选中目录,mark as Sources

2021-01-28 18:51:24 410

原创 Python学习Step1 -- 打开两个工程,使用logger

Python学习Step1 -- 打开两个工程,使用logger打开两个工程Pycharm主菜单-Preferences-Project:Structure-AddContentRoot使用logger#!/usr/bin/env python# coding: utf8import logging_FORMAT = '[%(levelname)s]:%(asctime)s:{%(name)s:%(message)s}'class _LoggerHolder(obj.

2021-01-28 11:55:24 306 2

原创 Intel漏洞回顾(一)

Intel漏洞回顾(一)作者:maccoray目录漏洞背景幽灵原理漏洞背景 在今年(2018)的一月初,google的安全团队Project Zero在网路上发布了两则公告Reading privilegedmemory with a side-channelToday's CPUvulnerability: what you need to know 这两则公告基本可以用撼动世界...

2018-02-09 17:52:37 2919 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除