如何将字典类型的字符串转为字典
我们知道一些双属性的集合或列表等能够转为字典,要是一个字典类型的字符串怎么转为字典呢?
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__这里的默认值