python笔记
一.Properties 装饰器
更精确的调整控制属性访问权限,你可以使用 @property 装饰器, @property 装饰器就是负责把一个方法变成属性调用的。
装饰器本质上也是一个高阶函数
二、函数名.__doc__查看函数的注释
三、python模块相关
1.包
含有 __init__.py 文件的目录可以用来作为一个包,目录里的所有 .py 文件都是这个包的子模块
四、os模块
提供了与系统相关的功能
os.getuid() 函数返回当前进程的有效用户 id。
os.getpid() 函数返回当前进程的 id
os.getppid() 返回父进程的 id。
os.uname() 函数返回识别操作系统的不同信息,在 Linux 中它返回的详细信息可以
从 uname -a 命令得到。 uname() 返回的对象是一个元组, (sysname, nodename, release, version, machine) 。
os.getcwd() 函数返回当前工作目录。
os.chdir(path) 则是更改当前目录到 path。
def view_dir(path='.'): """ 这个函数打印给定⽬录中的所有⽂件和⽬录 :args path: 指定⽬录,默认为当前⽬录 """ names = os.listdir(path) names.sort() for name in names: print(name, end =' ') print()
五、虚拟的python环境(venv)
能帮助你在本地目录安装不同版本Python 模块的 Python 环境
永远记住当开发新应用时创建虚拟环境,这会帮助你的系统模块保持干净
六、Collections 模块
collections是Python内建的一个集合模块,提供了许多有用的集合类。
Counter 类
defaultdict 类
namedtuple 类
七、迭代器(iterators)
python迭代器对象在遵守协议时需要支持如下两种方法:
1.__iter__(),迭代器对象自身。用在for和in语句中。
2.__next__(),返回迭代器的下一个值。如果没有下一个值可以返回,那么应该抛出StopIteration异常。
请记住迭代器只能被使用一次。这意味着迭代器一旦抛出 StopIteration ,它会持续抛出相同的异常。
class Counter(object): def __init__(self, low, high): self.current = low self.high = high def __iter__(self): return self def __next__(self): #返回下⼀个值直到当前值⼤于 high if self.current > self.high: raise StopIteration else: self.current += 1 return self.current - 1 c = Counter(5,10) for i in c: print(i,end=' ') ... 5 6 7 8 9 10
八、测试
1.单元测试(unit testing):
又称为模块测试,正对程序模块来进行正确性检验的测试工作。
程序单元是应用的最小可测试部件。
面向过程编程中,一个单元就是一个函数、一个过程、单个程序。
面向对象编程中,最小单元就是方法,包括基类(超类)、抽象类、派生类(子类)中的方法。
2.单元测试模块
python中有unittest这个模块
3.第三方模块 coverage 进行覆盖率测试