Я думаю, что я немного путают с объектно-ориентированного программирования в Python 3.объекты в классах Python
То, что я пытаюсь выяснить, это то, что происходит здесь:
class Library:
def __init__(self, some_list):
self.__articles_dict = {}
def create_article_objects(self, some_list):
for tuple in some_list:
for single_article in pair:
if single_article not in self.__articles_dict.keys():
article = Article(single_article)
self.__articles_dict[single_article] = article
some_list
это список кортежей, содержащих два имени статьи, которые связаны друг с другом (что-то вроде ссылки на Google). Здесь я создаю библиотеку из статей, которые я создал в другом классе (так называемый Article
). Все идет нормально.
Мой вопрос об этой части:
def get_titles(self):
"""
returns a list of all the network's article's titles
:return: a list of strings representing the articles' titles
"""
titles_list = []
# run on the dict's keys (=article titles)
for article in self.__articles_dict.keys():
titles_list.append(article.get_title)
return titles_list
get_title
функция определена в Article
класса, что означает, что это метод статья объект.
Насколько я понимаю, моя итерация на строк (for article in self.__articles_dict.values():
), так как же Python позволяет мне использовать get_title()
на «статьи», которая является только строка?
Спасибо за помощь, ребята.
Код для get_titles не соответствует вашему запросу (он использует '.keys()') и действительно не работает; вы должны использовать '.values ()', как вы заявляете, что будет экземпляром статьи, созданной в 'create_article_objects'. –