@staticmethod
class类里面的一个方法,有这个属性的函数,不用创建对象就能直接调用函数,举个例子:
from math import sqrt class Triangle(object): def __init__(self, a, b, c): self._a = a self._b = b self._c = c # 不用声明对象,就可以直接调用的方法 @staticmethod def is_valid(a, b, c): return a + b > c and b + c > a and a + c > b def perimeter(self): return self._a + self._b + self._c def area(self): half = self.perimeter()/2 return sqrt(half * (half - self._a) * (half - self._b) * (half - self._c)) def main(): a, b, c = 3, 4, 5 if Triangle.is_valid(a, b, c): t = Triangle(a, b, c) print(t.perimeter()) print(t.area()) else: print('无法构成三角形') if __name__ == '__main__': main()