这是两种不同的方法:№1是LBYL(飞跃前先看一下),而№2是EAFP(要求宽恕多于许可)。
Pythonistas通常建议EAFP更好,其格式为“在您测试文件的时间与尝试自己创建文件的时间之间,如果进程创建文件,该怎么办?”的说法。这个论点在这里并不适用,但这是一般的想法。异常不应被视为太 特殊。
在您的情况下,从性能角度来说,由于try
在cpython中设置异常管理器(关键字)非常便宜,而创建异常(raise
关键字和内部异常创建)则相对昂贵,因此使用方法№2只会引发一次异常; 之后,您只需使用该属性。