【发布时间】:2019-04-29 15:13:32
【问题描述】:
我对下面不工作的代码有一些疑问:
- 如何让方法搜索返回一个新的数据库对象?
-
__init__可以将架构和list(这是字典的list- 我在哪里搜索)作为参数吗? - 如何避免一次次在搜索方法中编写类似的函数,导致数据库中的字段名很多。
提前感谢您的帮助。
class DataBase():
# Searches Movies by title and gives its entire info :( (stupid)
def __init__(self, movies, schema):
pass
def search(self, field_name, field_value1, field_value2=None):
if field_name=='title':
mov=[]
for movie in movies:
if field_value1 == movie['movie_title']:
mov.append(movie)
return mov
if field_name=='year':
for movie in movies:
if field_value2:
if movie['title_year'] in range (field_value1, field_value2+1):
return movie['movie_title'],movie['title_year']
else:
if movie['title_year']==field_value1:
return movie['movie_title'],movie['title_year']
if field_name=='actor_1_name':
mov=[]
for movie in movies:
if field_value1 == movie['actor_1_name']:
mov.append(movie)
return mov
**strong text**
【问题讨论】:
-
你读过Tutorial for Classes吗?
-
field_value1是否总是与movie[field_name]进行比较?如果field_value2存在,是否意味着搜索一系列值? -
看起来某些字段的搜索返回一个列表,而其他字段返回一个单一的东西。您可能需要创建两组字段名,以帮助区分两者。
-
是的,如果存在
field_value2,它应该只搜索一个值范围。并且,搜索函数应该返回一个新的数据库对象,其中只包含搜索找到的电影。我退回了清单和其他东西,因为我不知道该怎么做。