如何将字典类型的字符串转为字典
我们知道一些双属性的集合或列表等能够转为字典,要是一个字典类型的字符串怎么转为字典呢?
1 | In [36]: import ast |
参考文章:Python将字符串转为字典
vim跳转到最后一行或者跳转到行首
第一种方式:
:$
跳转到最后一行:1
跳转到第一行
第二中方法:
shift + g
跳转到最后一行gg
跳转到第一行
Python中glob模块的使用
glob
模块可以按照指定路径得到所有符合条件的文件的完整路径。基本使用如下统配符进行操作:
*
星号:表示匹配0个或者多个字符?
问号:表示匹配单个字符[]
中括号:匹配指定的范围 如[0-9]
glob.glob
1 | In [14]: import glob |
glob.iglob
iglob
方法返回的是一个可迭代对象,相比列表更加省内存和高效。
1 | In [20]: import glob |
Python 读取和写入yaml文件
安装pyyaml
模块
1 | pip install pyyaml |
查看一下yaml文件
1 | # cat eg.yaml |
编写读取文件
1 | # cat py_yaml.py |
输出结果为Python的字典格式
1 | {'name': 'Tom Smith', 'age': 37, 'spouse': {'name': 'Jane Smith', 'age': 25}, 'children': [{'name': 'Jimmy Smith', 'age': 15}, {'name1': 'Jenny Smith', 'age1': 12}]} |
将读取的字典重新写入yaml文件
1 | # cat py_yaml.py |
查看输出的yaml文件
1 | age: 37 |
Python内置函数详解
推荐阅读参考文章: Python内置函数详解
Python中垃圾回收和del语句
我们知道Python中的垃圾回收是通过引用计数来完成的,当一个对象的引用计数为0的时候,Python的垃圾回收机制就会将对象回收。
1 | In [27]: a = "larry" |
larry
这个字符串对象,在第一行被贴了a
标签之后,引用计数为1。然后又贴上了b
标签,此时字符串对象的引用计数为2。
当我们调用了del
相当于把指向字符串对象的一个标签给撕掉了。因此,del
语句操作某个对象的时候, 并不是直接将该对象在内存中删除, 而是将该对象的引用计数-1
。
我们看到当我们即使使用del
删除了a
变量(标签)内存中实际的字符串对象并没有被删除, del语言只是删除了一个变量对该字符串对象的引用, 所以对于larry
这个字符串对象来说, 效果只是引用计数-1
。
魔法函数del
类中的__del__
魔法函数, 支持我们自定义清理对象的逻辑, 当Python解释器使用del语言删除类的对象的时候, 会自动调用类中的__del__
函数, 我们可以对其进行重载
1 | In [36]: class Ref: |
通过重载__del__
魔法函数,我们可以控制在del
对象的时候执行哪些善后操作
函数的默认参数为可变对象的时候
1 | In [62]: class Company: |
当函数的参数没有指定值的时候, 就会指向Company.__init__.__defaults__
这里的默认值