- 对象有两种,“可更改”(mutable)与“不可更改”(immutable)对象。在python中,strings, tuples和numbers是不可更改的对象,而 list, dict, set 等则是可以修改的对象。
- 元组不可变
- file
所在模块:os
变量作用:获取当前文件的绝对路径,一般配合下面的函数来使用
当前文件的完整路径: os.path.realpath(file)
当前文件所属目录: os.path.dirname(os.path.realpath(file))
当前文件所属目录的上级目录: os.path.dirname(os.path.dirname(os.path.realpath(file)))
- python -m site 查看包搜索路径的命令,比sys.path更全
5.美化json格式 python -m json.tool xxx.json
6.python -c
7.快速搭建ftp服务器
8.pip install 安装包到哪
9.chain
10.解包列表
11.heapq
12.*解包字典
13.读取大文件
14.没有root权限怎么安装第三方包
15.最优雅的列表和字符串反转
16.默认参数最好为不可变对象
17.模块包命名空间
模块
模块中可以包含模块级代码、函数和类。模块与模块之间是不能直接调用的,必须使用import关键字来导入。导入时,模块级代码一定会被执行,如果我们不想让某些代码执行,那么可以添加一句if name == ‘main‘:,例如
if __name__ == '__main__':
print('这里的代码,仅在该模块自身运行时执行')
else:
print('模块被导入时执行')
包
包是一个目录,特殊的地方在于需要包含一个init.py文件(内容可以为空),这是为什么呢?设想一下import hello这条语句,Python从哪去找hello这个包,C盘D盘E盘,成千上万个文件,范围太大了。所以需要把有Python模块的目录标出来,只查找这些目录就可以了。示例:
sound/ 顶层包
__init__.py 初始化 sound 包
formats/ 文件格式转换子包
__init__.py
wavread.py
wavwrite.py
aiffread.py
aiffwrite.py
auread.py
auwrite.py
...
effects/ 声音效果子包
__init__.py
echo.py
surround.py
reverse.py
...
filters/ filters 子包
__init__.py
equalizer.py
vocoder.py
karaoke.py
...
命名空间
命名冲突是个头疼的问题,Python提供了命名空间这个方法,把代码块划分为不同的命名空间,同一个命名空间不能重名,不同命名空间可以重名,如图所示:
命名空间一般有三种:
- 内置:Python内置的名字。
- 全局:模块中定义的名字,包括模块的函数、类、其他导入的模块、模块级的变量和常量。
- 局部:函数中定义的名字,包括函数的参数和局部定义的变量。(类中定义的也是)
包里面是文件,文件名重复与否由操作系统判断。
18.