杂项

目录

  1. java相关
  2. linux相关
  3. python相关

    java相关

Class类中的getCanonicalName(), getName(), getSimpleName()

  1. getCanonicalName() 是获取所传类从java语言规范定义的格式输出。 //getCanonicalName()=com.pinzhi.test.dao.DaoEntity
  2. getName() 是返回实体类型名称 //getName()=com.pinzhi.test.dao.DaoEntity
  3. getSimpleName() 返回从源代码中返回实例的名称。//getSimpleName()=DaoEntity

linux相关

问题1 :虚拟机环境下Ubuntu登录后只显示桌面背景

解决方案:按alt+ctrl+F1进入命令行模式,使用sudo apt-get install ubuntu-desktop重新安装桌面

Python相关

yield与yield from 关键字的性质

  为了探究两个关键字的性质,使用print的方式测试了他们的一些性质。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#yield_from.py
#定义两个函数,htest()&itest()
#在主方法中调用itest(),itest()通过yield from调用htest()
def htest():
print('htest run...')
i = 0
key = 0
while i < 4:
n = yield key
if n == 4:
p = 100
else:
p = n
key = p
print('h[',i,']:',key)
i += 1

def itest():
print('itest() start')
h = htest()
k = 0
h.send(None)
while True:
d = yield k
print('d=',d)
print('yield from htest()')
val1 = yield from htest()
print('itest1:', val1)
val2 = yield from htest()
print('itest2:', val2)
e = yield k
print('e=',e)
try:
print('th:',h.send(e))
except StopIteration as e:
print('h error!!!')
print('itest() end')

if __name__ == '__main__':
t = itest()
t.send(None)
j = 0
while j < 12:
j += 1
try:
t.send(j)
except StopIteration as e:
print('error!!!')

  运行结果如下:
test_yield_from
  由代码可以看出两个关键字有如下特点:

  1. 对于一个coroutine函数,首先要用send()方法传入一个None,开启这个函数
  2. coroutine函数传入参数的个数,由函数内的循环次数决定(即如果为无限循环时,可能会导致另一个coroutine函数无法接收参数),传入的参数个数超过循环次数则会抛出’StopIteration‘异常
  3. coroutine函数内通过 a = yield ba = yield from b()的方式接受传入的值,若是用变量接收,变量可为任意变量,但一定要是已定义的变量,接收变量后,可通过 b = xxxreturn xxx设定外部函数的返回值;若是使用yield from的方式,则要求后面的函数是coroutine函数。
  4. 参数传入是按顺序传入的。可以将yield from看做是一个数组,比如先用yield传值,后面接上一个yield from,则先将一个值传给yield,再将后面长度为yield from数组的数传入该函数中
  5. 使用yield from 方法时,若是直接传输给一个函数即yield from xxx(),每次传输都会重新开始循环;
  6. 若是使用在循环外h =coroutine() h.send(None)开启coroutine函数,在循环中用yield h接受传入的值,则每次运行都会从继续上一次的状态开始

python中的文件操作

有以下语句:

1
2
with open(filepath,'xt') as f:
f.write('Hello\n')

理解为:x模式是Python3中对open()函数的拓展,用来代替W模式对一个不存在文件系统的文件操作。xt 模式下,若是filepath中的文件已存在,会抛出FileExistsError。

翻转list

有以下语句:

1
2
x = [1,2,3,4,5,6]
x_trans = [x[::-1] for val in x]

理解为:对于一个list,使用索引取值时,可以加入第三个参数,即取值的步长(默认为1),值为-1表示逆序取值

机器学习相关



《time-series-of-price-anomaly-detection》

一篇关于异常检测的好文章,使用python实现了不同方法在异常检测上的应用

相关算法:
孤立森林算法,过程大概为,对不同维度随机划分区间(直至区间内只剩一个点)构造多棵树,根据目标点在多棵树中的平均高度判断是否异常点
oneClassSvm,求出包裹样本的最小超球面,不在球面内的样本都认为不是想要的类

To be continue…

感谢你的阅读!