自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 问答 (1)
  • 收藏
  • 关注

原创 Go的继承与重写以及结构体嵌套

1. 首先声明两个基础结构体(其他语言的基类吧:))type Animal struct { Name string}type Old struct { Age int}并给Animal类增加一个方法Walk()func (a *Animal) Walk() { fmt.Println("Animal Walk")}2. 让People类嵌套(继承)上面的Animal和Old类这时可以有两种匿名嵌套(继承)方式嵌套结构体指针嵌套结构体 // 匿名嵌套,而且嵌套的是一个

2021-10-11 10:10:12 1852

原创 Go 实现不同goroutine之间的阻塞

Go 程序从 main 包的 main() 函数开始,在程序启动时,Go 程序就会为 main() 函数创建一个默认的 goroutine。所有 goroutine 在 main() 函数结束时会一同结束。若在启用的goroutine中不使用WaitGroup的话会因为main函数已执行完,阻塞的函数与发送信号的函数会一同结束,不能真正实现阻塞的功能。因此可以使用WaitGroup来实现阻塞的功能。如下为不加WaitGroup时的版本package mainimport ( "fmt" "

2021-08-27 16:20:34 438

原创 为什么我没有奇思妙想呢???

为什么???

2021-05-04 17:32:42 202 2

原创 python根据主机名获取主机的IP地址

比如我的hosts名字[root@controller ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain699.0.85.37 controller99.0.85.38 compute199.0.85

2021-03-12 16:17:13 422

原创 实现一个函数出错重试的装饰器

装饰器import functoolsdef retry_if_error(f): @functools.wraps(f) def inner(*args, **kwargs): remain_times = 3 while remain_times > 0: try: return f(*args, **kwargs) except Exception

2021-02-24 17:00:47 215

原创 利用python实现事件回调

一、简介在代码开发的过程中,为了降低各模块之间的耦合度,除了可以采用rpc的方式外,也可以采用事件订阅的方式进行。昨天在和小伙伴讨论这个模块的作用时,我突然想到这个事件回调可以用在智能家居中。。。二、实现主要利用了python中collections的defaultdict模块为了方便区分callback,因此实现一个函数来获取该callback的IDdef get_callback_id(callback): """return a unique identifier for the

2021-02-07 15:06:50 1041 4

原创 with的一种用法(利用with清理资源与回退)

需求场景在执行完对资源的操作后再执行一些动作,若此动作执行失败,需要对之前对资源的操作进行回退。示例在执行完do_something_to_db 函数后,需要执行after_do_db 函数,但是当after_do_db 函数执行错误,需要对do_something_to_db 函数之前所做的操作进行清理、回退这时使用with语句可以比较方便的进行回退操作,相对于不加with的语句显得优雅许多不用每次调用after_do_db时都加try...except...回退清理代码代码class Bas

2020-12-29 18:01:21 293 2

原创 Linux共享挂载

1 系统环境(base) [root@localhost ~]# cat /etc/redhat-releaseCentOS Linux release 8.2.2004 (Core)2 安装软件及配置需要选定一个作为nfs服务端,其余的作为客户端。建议在服务端和客户端都新增用户nfs_share,并保持多端一致【usermod、groupmod】# 客户端、服务端[root@docker-image ~]# id nfs_shareid: nfs_share: no s

2020-12-28 22:36:44 467 2

原创 Postman的Binary方式传送数据,requests实现

问题来源及背景最近在学习ES,在批量上传数据的时候卡住了,requests上传文件的时候一般用的是url = 'http://127.0.0.1:9200/_bulk'files = { "field" : open(filename, mode='rb') }requests.post(url, data=files, headers={'Content-Type':'binary'})但是上传的过程中ES一直报错,信息如下{"error":{"root_cau

2020-10-08 16:17:44 9403 1

原创 记两种使用property的方法

使用property可以限定类属性的读写使用property()函数函数声明:property(fget=None, fset=None, fdel=None, doc=None)优点:按照一般的写set和get的思路,不用加装饰器,只需在get和set函数后加上property函数即可示例:class Student(object): def __init__(self, name): self._name = name self._sex = Non

2020-08-10 14:01:20 1063

原创 Python偏函数(partial)的一些应用

在看Flask源码时发现的偏函数,现整理一下一些可能的应用例子示例1from functools import partialdef lookup_req_object(name): top = instance_stack.pop() return getattr(top, name, None)class Person: def __init__(self, name, age): self.name = name self.

2020-07-29 15:53:02 302 1

原创 将IP地址转换成整型--python实现

def int2ip(num): s = [] for i in range(4): s.append(str(num %256)) num //= 256 return '.'.join(s[::-1])def ip2int(ip): res = 0 for j, i in enumerate(ip.split('.')[::-1]): res += 256**j*int(i) return res"""

2020-06-24 14:25:04 803

原创 Python装饰器应用---统计函数运行时间

from functools import wrapsimport time# 装饰器函数def fun_run_time(func): @wraps(func) def inner(*args, **kwargs): s_time = time.time() ret = func(*args, **kwargs) e_time = time.time() print("{} cost {} s".format(func

2020-06-16 19:07:09 719

原创 FlaskMVC模式开发(应用拆分,模型拆分)

Flask MVC模式开发(应用拆分,模型拆分)随着Flask项目开发的进行,你会发现把模型定义和视图函数写在一个文件里有多乱,一方面找具体某个函数时你的鼠标可能需要在几百行,甚至上千行的代码中溜来溜去,很浪费时间有没有啊。所以需要进行拆分,但这时又非常容易出现循环导包的情况,所以经过我多方寻找与研究终于找到了解决办法。祭上我的GitHub链接https://github.com/Prolht/FUE/tree/master/backend...

2020-06-09 15:46:27 497

原创 Flask绑定多个数据库

下面主要讲如何在Flask中绑定多个数据库使用场景当你开发一个系统时,需要有多个数据库,但这个数据库已经有了,建新表还得把数据导来导去得很麻烦,这时候就用到了多个数据库得绑定了方法由于数据库密码等信息为敏感信息,最好做脱敏处理# config.pySQLALCHEMY_DATABASE_URI = 'mysql://root:123456@localhost:3306/teacher' # 默认数据库(主数据库)# 需要绑定的多个数据库SQLALCHEMY_BINDS = { '

2020-06-09 15:28:55 3355 2

原创 10进制转62进制

def __10to62(num): """ 10进制转62进制 """ base_scale = 62 chars = [ '3', 'a', '7', 'n', '2', 'b', 'H', 'm', 'E', '4', 's', 'M', 'f', 'Z', 'I', 'Y', 'K', 'x', 'q', 'U', 'o', 'l', 'L', 'D', '5', 'd', 'Q', 'h', 'i', 'y'.

2020-06-09 14:21:02 486

原创 关于jpg图片的小知识

.jpg文件的开头以字节FF D8开始如图

2020-05-25 20:40:21 545

转载 Python/C API Python 调用C模块

见链接:https://docs.pythontab.com/interpy/c_extensions/python_c_api/

2020-05-25 20:33:04 181

转载 Python for 循环的 else从句

啥?for循环还有一个else从句。应用场景:有个常见的构造是跑一个循环,并查找一个元素。如果这个元素被找到了,我们使用break来中断这个循环。有两个场景会让循环停下来。 - 第一个是当一个元素被找到,break被触发。 - 第二个场景是循环结束。现在我们也许想知道其中哪一个,才是导致循环完成的原因。一个方法是先设置一个标记,然后在循环结束时打上标记。另一个是使用else从句。瞅瞅咋用吧!for n in range(2, 10): for x in range(2, n):

2020-05-25 20:22:34 173

原创 Python列表推导式if else及一些应用

两种形式的列表推导式1. 只有if…版模板:[item for item in data if condition]示例:# 剔除data中的奇数data = [1, 2, 3, 4, 5, 6, 7, 8, 9]test = [item for item in data if item % 2 == 0]print(test)# 结果[2, 4, 6, 8]此处if主要起条件判断作用,data数据中只有满足if条件的才会被留下,最后统一生成为一个数据列表2. if…else… 版

2020-05-25 19:50:53 6634

原创 进程的相关知识

引入目的更好的描述和控制程序并发执行注意:并发是指不同程序在同一时间间隔内运行,而并行是指不同程序在同一时刻运行定义进程是进程实体的一次运行,是系统进行资源分配和调用的一个独立单位组成PCB(进程控制块):描述进程的基本情况和运行状态,进而控制和管理进程程序段:能被进程调度程序调度到CPU运行的程序的代码段数据段:存储程序运行期间的相关数据,可以是原始数据也可以是相关结果进程状态:分类运行状态就绪状态阻塞状态创建状态结束状态状态变化就绪 -> 运行:经过处理

2020-05-21 22:02:09 162

原创 计算机原理相关知识-概述

计算机原理概述发展历程第一代:电子管时代(用延迟线,磁鼓存储信息)第二代:晶体管(磁芯存储器,开始使用高级语言,如Fortran)第三代:中小规模集成电路(半导体存储器,有了分时操作系统)第四代:超大规模集成电路(微处理器出现)系统组成运算器:计算机的执行不见,用于对数据进行加工处理,ALU(核心)完成算术和逻辑运算控制器:计算机指挥中心,由其控制各部件自动协调地进行工作存储器:计算机的存储不见,用于存放程序和数据输入设备:将程序和数据以机器所能识别和接受的信息形式输入到计算机输

2020-05-21 21:39:52 269

转载 git 常用操作收集

Git常用操作命令收集:1) 远程仓库相关命令克隆仓库:git clone git://github.com/rep/rep.git查看远程仓库:git remote -v添加远程仓库:git remote add [name] [url]删除远程仓库:git remote rm [name]修改远程仓库:git remote set-url --push[name][newUrl]拉取远程仓库:git pull [remoteName] [localBranchName]推送远

2020-05-21 21:10:00 131

转载 解决 Markdown 中表格内出现竖线“|”时无法正常渲染的问题

> 原文:解决 Markdown 中表格内出现竖线“|”时无法正常渲染的问题解决思路| 在 HTML 中传输使用的 ACSII 码为 124,故使用 |(注意后面的分号) 替换之参考ASCII码对照表 How to escape a pipe char in a code statement in a markdown table? - Stack Overflow...

2020-05-13 15:13:21 1367

翻译 Python 内置方法的时间复杂度

转载自:http://www.orangecube.NET/Python-time-complexity本文中,’n’代表容器中元素的数量,’k’代表参数的值,或者参数的数量。列表(list)以完全随机的列表考虑平均情况。列表是以数组(Array)实现的。最大的开销发生在超过当前分配大小的增长,这种情况下所有元素都需要移动;或者是在起始位置附近插入或者删除元素,这种情况下所有在该位置后面的元素都需要移动。如果你需要在一个队列的两端进行增删的操作,应当使用collections.deque(双向队.

2020-05-13 15:07:51 457

原创 二叉排序树

定义二叉查找树(Binary Search Tree, BST),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结构进行高效率的排序与检索操作.根据二

2020-05-13 10:52:14 202

转载 C/C++中strlen的用法

原文地址:https://blog.csdn.net/smf0504/article/details/51372351/strlenstrlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值。原型extern unsigned int strlen(char...

2020-05-05 10:40:30 79345 1

原创 C++ 基本数据类型总结

1. 整型1.1 整型char、short、int、long、long long默认为有符号的,例如 signed int;规则:short:至少16位;int:至少和short一样;long:至少32位,且至少和int一样长;long long:至少64位,且至少和long一样长。除了char其余都有无符号变体:unsigned short、unsigned int、un...

2020-04-24 10:09:38 572

原创 C++ 单引号与双引号

单引号是字符型单引号引起的一个字符实际上代表一个整数。例如:#include <iostream>using namespace std;int main(){ char single_quotation = 'A'; cout << int(single_quotation) << endl; return 0;...

2020-04-23 09:48:50 755

原创 C++ string 类入门

1.使用#include <string>2.声明与初始化string str1;string str2 = "apple";string str3 = {"The apple tree"};string对象大小可以自动调整,不需要在声明时指定。3.赋值、拼接和附加string str1;string str2 = "test";string st...

2020-04-22 20:09:13 131

转载 Python Shebang

Tip大部分.py文件不必以#!作为文件的开始. 根据PEP-394, 程序的main文件应该以#!/usr/bin/python2或者#!/usr/bin/python3开始.注: 在计算机科学中,Shebang(也称为Hashbang)是一个由井号和叹号构成的字符串行(#!), 其出现在文本文件的第一行的前两个字符. 在文件中存在Shebang的情况...

2020-03-22 20:08:48 716

转载 python int函数

https://www.runoob.com/python/python-func-int.html

2020-03-18 16:18:28 503 1

原创 华为研发工程师编程题--汽水瓶问题

题目 :有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?...

2020-03-18 15:39:25 457

原创 啊~牛客网的输入啊

多行输入import sysres = []s = sys.stdin.readline().strip("\n")while s != "": res.append(s) s = sys.stdin.readline().strip("\n")第一次这么迷输入输出

2020-03-18 15:27:07 159

原创 ICMP(网际控制报文协议)

为了提高IP数据报交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol ,ICMP)来允许主机或者路由器报告差错和异常情况。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。ICMP是IP层协议CIMP报文的类型有两种, 即ICMP差错报告报文和ICMP询问报文。ICMP差错报文类型:...

2020-03-09 09:19:59 733

原创 vscode 通过code Runner 运行python时乱码

解决办法:再setting.json中添加一行"code-runner.runInTerminal": true,即可,如图

2020-03-02 13:37:46 396

转载 zsh:command not find:conda 的详细解决办法

1.在Terminal中用vim命令打开文件vi ~/.zshrc2、这时我们看到一个文件,像下面这样:# export LANG=en_US.UTF-8# export LANG=en_US.UTF-8# If you come from bash you might have to change your $PATH.# export PATH=$HOME/bin:/us...

2020-01-03 18:02:08 2104 1

原创 Python 中小谈global 全局变量

全局变量标志:global工作中碰见了global全局变量,发现自己不太明白,在这记下来。。。a = 1def fun1(): a = 2 print("In fun1 a is:{}".format(a))def fun2(): global a a = 2 print("In fun2 a is:{}".format(a))if __name__ == '__m...

2019-03-06 16:08:30 2092

原创 Linux学习笔记2

1、移动文件(将file1移到Documents中)#格式 :mv [源目录文件] [目的目录]mv file1 Documents #file1为文件名,Documents为目录名2、文件重命名(将oldname改为newname)mv oldname newname3、使用 cat,tac 和 nl 命令查看文件前两个命令都是用来打印文件内容到标准输出(终端),其中 ...

2018-08-29 08:27:11 150

原创 Linux学习笔记1

新建用户liming:sudo adduser liming切换用户:sudo -l liming注销当前用户的登陆:exit删除用户:sudo deluser liming --remove-home新建空白文件:touch test 新建名称为filename的目录mkdir filename #创建一级目录mkdir -p fathe...

2018-08-28 19:01:19 162

空空如也

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

TA关注的人

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