python知识点

tech2024-03-22  65

@property装饰器:可以把一个方法变成属性调用。 class Student(object):

@property def score(self): return self._score

@score.setter def score(self, value): if not isinstance(value, int): raise ValueError(‘score must be an integer!’) if value < 0 or value > 100: raise ValueError(‘score must between 0 ~ 100!’) self._score = value

s = Student() s.score = 60 # OK,实际转化为s.set_score(60) s.score # OK,实际转化为s.get_score() 60

s.score = 9999 Traceback (most recent call last): … ValueError: score must between 0 ~ 100!

@staticmethod和@classmethod的作用与区别 如果在@staticmethod中要调用到这个类的一些属性方法,只能直接类名.属性名或类名.方法名。

而@classmethod因为持有cls参数,可以来调用类的属性,类的方法,实例化对象等,避免硬编码。

最新回复(0)