异常中的finally

异常处理中,在捕获异常后还可以再次抛出异常,也可以在catch中return,那在finally中是否还可以再次抛出异常、是否可以return,下面是测试几种常用语言的结果总结

阅读更多

python中的包和导入

python使用包(package)、模块(module)来组织代码,以便于维护和管理。
使用关键字import来导入模块。导入要指定搜索路径,即从何处搜索模块。
Python搜索模块路径是由四部分构成的:

  • 程序的主目录: 执行文件的目录,即__main__文件的目录。
  • PATHONPATH目录:环境变量,可以设置或扩展它。
  • 标准目录:DLLS, Lib, site-packages目录。
  • .pth文件的目录: 可以放在python安装目录或site-packages中。每行一个路径
    最后这4部分的路径都存储在sys.path列表中。
    因此也可以在代码中使用sys.path.add(“/path/to/module”)来添加自定义搜索路径。
阅读更多

正则表达式中的断言

断言属于Group constructs,但是不匹配具体的东西,所以也被称为零宽断言。他们用来指定一个位置,为这个断言为真时才继续进行匹配。

捕获型匹配

(…) 匹配括号中的内容
(a|b) 匹配a或者b
(?<name>…), 同上但是为分组取一个名字,当分组很多时为分组取一个名字很有用。注:在golang,python中为(?P<name>...)
以上匹配都会占用匹配位置,并生成分组,正则表达式内可以通过\1,\2,\3 or \k<name> 来引用

阅读更多

python3 新特性总结

1. f-string 字符串插值

传统字符串格式化是使用%, python2.6 后引入了format提供了更强大,灵活的控制。python3 开始提供了字符串插值的方法,更加方便,清晰。这种方式在其它语言中并不陌生。

1
2
3
4
5
a = "Peeter"
b = 50
s = "{0} has {1:.2f} kg".format(a, b)

s2 = f"{a} has {b:.2f} kg"
阅读更多

go语言学习笔记

  • if 可以有多个;隔开的语句,if xxx; yyy {…}。 golang语句分隔符其实是;但是可以省略
  • golang 中函数名头大小写决定了函数在包外的可见性!
  • a := value 简短变量声明只能用 在函数内, 注意是 声明
  • go 中指针是不能改变的
  • 编译器自动选择在栈上还是堆上分配空间,但是不由var还是new方式决定!
  • 注意go 中 := 和 多重赋值, 和作用域的坑
  • 包导入:. “xx”, _ “xx”, f “xx”
阅读更多

Flutter中的Redux

flutter通过widget树的形式构建UI,不同的widget怎么去访问或者传递一个数据(状态),并且在这个状态改变后通知到其它Widget呢,官方简单demo中是通过构造函数的参数把数据或者修改数据函数传递给子widget,但是随着应用规模扩大,widget树会很复杂:

阅读更多

Google Flutter 初体验

最近想着做个app,自己有一点android开发经验,但是从来没做过ios开发,就想用跨平台的方式,一劳永逸。于是对比了不少跨平台的方案,iconic, xamarin, react native,最后本打算用react native,偶然发现flutter,google的产品,于是尝试了一下。

阅读更多

numpy中轴的理解

最近学numpy中的ndarray,许多函数如np.mean, np.sum, np.min等都有个axis的参数,那什么是轴呢?
其实就是数组的维度,对应ndarray.ndim的值, 也即ndarray.shape的len.

阅读更多