擅长:python、mysql、java
<p>没有@classmethod装饰符,它的工作方式就不同了,因为在修改后的代码中,“cls”不再是类:它是实例。我们通常将实例指定为“self”,但是“self”和“cls”在Python中并不是保留词——它们只是约定。你可以把任何你想要的东西放在它们的位置,尽管这样做会引起混乱(这在原始代码中很明显)。</p>
<p>至于我认为两个版本的代码输出之间的不一致性,我不能用普通自定义类的方法来重现行为,所以它一定与unittest包有关。不过,我敢打赌这是因为类方法和实例方法之间的差异。</p>