Передал объект вместо свойства объекта?
Есть два класса - Company
а также Project
, Company
объект имеет свойство projects
в виде списка, который должен указывать список Project
Примеры, которые добавляются в компанию. Вот реализация классов и методов для добавления проектов в компанию:
class Company(object):
def __init__(self, companyname):
self.companyname = companyname
self.projects = list()
def show_projects(self):
print(f"Company projects: {self.projects}")
def add_project(self, name):
return self.projects.append(Project(name))
class Project(object):
def __init__(self, name):
self.name = name
Но когда я пытаюсь инициализировать компанию, затем спроектировать и добавить ее в компанию, add_project возвращает не project.name
, но сам объект, то есть вывод этого:
firm = Company("New")
first = Project("first")
print(first.name)
firm.add_project(first.name)
firm.show_projects()
будет:
first
Company projects: [<__main__.Project object at 0x00A54170>]
Почему это не имя, а сам объект? Не могу узнать, чего здесь не хватает.
1 ответ
Решение
firm.projects
это список так в show_projects
когда вы распечатаете его, это будет список объектов. Одним из решений будет изменение show_projects
чтобы сначала отформатировать список в строку через запятую:
def show_projects(self):
formatted_projects = ','.join([p.name for p in self.projects])
print(f"Company projects: {formatted_projects}")