@property, @classmethod基本用法
阿新 • • 發佈:2018-11-07
@property
廢話少說,貼上程式碼(程式碼參考@廖雪峰教程)
class Student(object):
def __init__(self, score):
self._score = score
@property
def score(self):
return self._score
@score.setter
def score(self, value):
'''這裡對score進行判斷、處理的操作'''
self._score = value
通過這樣的處理,例項物件self._score
score.setter
進行控制呼叫方式:
s = Student(80)
'''檢視分數'''
s.score
'''修改分數'''
s.score(100)
@classmethod
簡單來說,classmethod就是講類中的方法變成類方法
下面貼一段在學習scrapy時的程式碼例項 :
class TutorialPipeline(object): def __init__(self, redis_host, redis_port): self._redis_host = redis_host self._redis_port = redis_port @classmethod def from_crawler(cls, crawler): return cls(crawler.settings.get('REDIS_HOST'), crawler.settings.get('REDIS_PORT'))
該類方法的功能為,返回一個例項物件