python当中的回调函数是个啥?
在编程过程当中,一直在使用回调函数,但是自己却一直没有去深究回调函数究竟是个啥东西!因为使用的时候用就完事了。现在来深究一下! 回调函数的定义回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Python、ECMAScript等更现代的编程语言中还可以使用仿函数或匿名函数。 百度百科解释其机制: 定义一个回调函数; 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者; 当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。 简单来理解就是在最开始初始化一个函数,当需要使用到这个函数的时候调用这个函数指针对事件进行处理。这个解释其实也不简单,因为如果你使用的是python,没有指针会很难理解。 由于在python中已经没有指针的概念,所以函数名字将作为参数传递给另一个函数作为参数,在事件触发的时候调用。如下: 1234567def callbcak_func(args): print(*args)def caller(args, func): ...
docker基础
http://link.hhtjim.com/163/523658940.mp3 关于dockerDocker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 翻简单来说就是可以可以打包环境而不需要打包整个虚拟机,只要其他电脑上有dockers,开发者就能让自己的项目在各种条件下执行起来 docker安装使用脚本安装 Docker: 1234$ sudo yum update$ curl -fsSL https://get.docker.com/ | sh$ sudo service docker start$ sudo docker run hello-world 镜像与容器docker的镜像其实就是模板,跟我们常见的ISO镜像类似,是一个样板。使用镜像常见的应用或者系统,称之为一个容器。镜像是docker容器运行时的只读模板,镜像可以用来创建docker容器。 Docker...
with语句
在工作当中写代码的时候遇到当需要使用python打开文件的时候,程序会提示你使用with语句而是不是open+close,以前自己都未曾关心为啥,这样做有什么优势,现在越发好奇了。 With语句是什么?最常见的解释就是说当年你需要打开一个文件的时候,如果只是打开不关闭是危险或者不规范的操作,所以必须要有打开也要有关闭,如下代码: 123file = open("test.txt")data = file.read()file.close() 但是这里有两个问题: 一是可能忘记关闭文件句柄; 二是文件读取数据发生异常,没有进行任何处理。 所以为了安全起见推荐有以下改进方法: 12345file = open("test.txt")try: data = file.read()finally: file.close() 虽然更加安全,但是冗长以及理解更困难的问题也随之出现了。而with语法正好可以解决这个问题: 12with open("/tmp/foo.txt") as file: data...
行尾序列是个啥?
...
python的logging库记录
问题在最近的工作当中,需要使用到python的一个常见库叫做logging,这个库可以用于项目的日志记录,但是在我使用的过程当中却需要多个log对象分别输出到不同的日志文件当中的时候,我使用以下代码失败了: 1234567891011121314151617181920import logginglogging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='test.log', filemode='w')log = logginglog.debug('debug...
python的坑记录
在阅读别人博客的时候看到别人记录了一个python的坑,我觉得可能是一个今后会发生的一个错误,因此记录下来。直接上代码: 1234567def f(a, L=[]): L.append(a) return Lprint(f(1))print(f(2))print(f(3)) 打印出来的结果是: 123[1][1, 2][1, 2, 3] 这是因为, 作为默认参数, python在启动时就会将变量 L 建立, 我们在函数 f 内对 L 处理就会导致后来调用的 L 已经是修改过的 L 了, 我们可以通过打印 L 的内存地址来验证 123456789def f(a, L=[]): print(id(L)) L.append(a) print(id(L)) return Lprint(f(1))print(f(2))print(f(3)) 结果是 12345678945132896004513289600[1]45132896004513289600[1, 2]45132896004513289600[1, 2,...
分类
常见的机器学习分类有,支持向量机、决策树、KNN、朴素贝叶斯,以前在学习机器学习的时候就简单学过,现在需要用在图像分类上了。一时间蒙了,忘记怎么图像转以前的数据了,现在在GitHub上找到一个不错的例子,特此记录一下。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126import osimport cv2import numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import...
小心螃蟹
很多人都有一个常识:当我们往一个不高的容器中放进一只螃蟹时,它总会努力想尽办法逃出来。但如果放进去的是很多只螃蟹时,结果通常就是你拉我,我拽他,叠罗汉,最终谁也出不来。而在螃蟹群体中出现的这个特殊现象,竟然在人类群体中也同样适用。 这种现象我们称之为 Crab Mentality 螃蟹心理,那么螃蟹心理到底是怎么回事呢?把螃蟹放在桶里的时候,他们不会帮助对方逃脱。实际上,螃蟹群会阻止任何想单独逃脱的螃蟹。当一只螃蟹爬到桶的顶部时,其他的螃蟹会把他拽回来。这好像在说:“如果我要死了,那你也要一起死。”尽管螃蟹是否真的会这么做还有待探讨。但这种思维方式被称为“螃蟹心理”。它同时也可以应用到我们在生活中的表现。 比如,有一天,在一群不太关心学习的人中,有一个人决定要拿个好成绩。这个小组的其他成员不仅不会支持她,反而会嘲笑她,或者试图分散她在学习上的注意力。他们并不希望她成功,宁愿让她陷在跟他们一样的处境中。就好像在说,“如果我不能得到这个,那你也不能。” 这些人的心理就叫做“螃蟹心理”。
Gin框架数据渲染
json渲染 12345678910111213141516171819202122func main() { r := gin.Default() // gin.H 是map[string]interface{}的缩写 r.GET("/someJSON", func(c *gin.Context) { // 方式一:自己拼接JSON c.JSON(http.StatusOK, gin.H{"message": "Hello world!"}) }) r.GET("/moreJSON", func(c *gin.Context) { // 方法二:使用结构体 var msg struct { Name string `json:"user"` Message string Age int } msg.Name =...
go语言简单web
vscode 插件安装由于我个人使用的是vscode进行的操作,所以需要安装一下相应的插件,在插件安装好之后会自动提示安装依赖,国内源不大行,需要进行以下操作。 12go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn 不一定即刻生效,如果失败可以考虑重启。 基础go语言与其他语言一样,可以实现原生的web服务,代码如下: 123456789101112131415161718192021package mainimport ( "fmt" "net/http")// http.ResponseWriter:代表响应,传递到前端的// *http.Request:表示请求,从前端传递过来的func sayHello(w http.ResponseWriter, r *http.Request) { _, _ = fmt.Fprintln(w, "hello world!");}func main()...














