Python 如果有的话,有什么图案可以去掉吗?
您好,是否有任何方法通过删除Python 如果有的话,有什么图案可以去掉吗?,python,design-patterns,Python,Design Patterns,您好,是否有任何方法通过删除view.py中的if-elif-elif代码来改进此代码?您可以使用以下方法: # status.py class Status(object): @classmethod def add(cls, title, kind, attachment): self.db.set('title', title) self.db.set('kind', kind) self.db.set('attachme
view.py
中的if-elif-elif
代码来改进此代码?您可以使用以下方法:
# status.py
class Status(object):
@classmethod
def add(cls, title, kind, attachment):
self.db.set('title', title)
self.db.set('kind', kind)
self.db.set('attachment', attachment)
def add_text_status(title, text):
Status.add(title, 'text', {
'text': text
})
def add_photo_status(title, photos):
Status.add(title, 'photos', {
'photos': photos
})
def add_video_status(title, video_url):
Status.add(title, 'video', {
'url': video_url
})
...
# view.py
@app.route('/add')
def add_status(request):
title = request.get('title')
kind = request.get('kind')
if kind == 'text':
text = request.get('text')
status = add_text_status(title, kind, text)
elif kind == 'photos':
photo_ids = request.get('photo_ids')
photos = Photo.gets(photo_ids)
status = add_photo_status(title, kind, photos)
elif kind == 'video':
video_url = request.get('video_url')
status = add_video_status(title, kind, video_url)
elif ....
return status.to_json()
或者将
进程*\u状态
功能合并到添加*\u状态
中,您可以使用方法分派:
# status.py
class Status(object):
@classmethod
def add(cls, title, kind, attachment):
self.db.set('title', title)
self.db.set('kind', kind)
self.db.set('attachment', attachment)
def add_text_status(title, text):
Status.add(title, 'text', {
'text': text
})
def add_photo_status(title, photos):
Status.add(title, 'photos', {
'photos': photos
})
def add_video_status(title, video_url):
Status.add(title, 'video', {
'url': video_url
})
...
# view.py
@app.route('/add')
def add_status(request):
title = request.get('title')
kind = request.get('kind')
if kind == 'text':
text = request.get('text')
status = add_text_status(title, kind, text)
elif kind == 'photos':
photo_ids = request.get('photo_ids')
photos = Photo.gets(photo_ids)
status = add_photo_status(title, kind, photos)
elif kind == 'video':
video_url = request.get('video_url')
status = add_video_status(title, kind, video_url)
elif ....
return status.to_json()
或者将
进程*.\u状态
功能合并到添加*.\u状态
中,但不能不看到其余的。@IgnacioVazquez Abrams我添加了另一个,使其成为三个,不能不看到其余的。@IgnacioVazquez Abrams我添加了另一个,使其成为三个。@IgnacioVazquez Abrams