Так что это было заблуждение меня в течение нескольких дней в настоящее время, у меня есть три класса один называется Page
:Проблема создания объектов класса в рамках метода другого класса, и добавить их в списки Python
class Page:
def __init__(self, pageName, sectionIBelongTo="Uncategorised"):
self.mySection = sectionIBelongTo
#each page belongs to only one section
self.name = pageName
Какие должен иметь назначенный раздел объекта:
class Section:
childPages = []
def __init__(self, padName):
self.name = padName
def addSection(self, pageObject):
self.childPages.append(pageObject)
Раздел также содержит список всех дочерних заметок. Это все управляется через единый Book объекта класса:
class Book:
Sections = []
def __init__(self):
print "notebook created"
def addSection(self, secName):
sectionToAdd = Section(secName)
self.Sections.append(sectionToAdd)
def addPage(self, bufferPath, pageName, pageSection="Uncategorised"):
#Create a page and add it to the appropriate section
for section in self.Sections:
if section.name == pageSection:
sectionToSet = section
#Search list of sections for matching name.
newPage = Page(pageName, sectionToSet)
#Create new page and assign it the appropriate section object
self.Sections[self.Sections.index(sectionToSet)].addSection(newPage)
#Add page to respective section's list of pages.
Который, как вы можете видеть, содержит список всех его разделов. Так что я импортировать эти классы из другого файла и попытаться заполнить мою книгу так:
myBook = Book()
myBook.addSection("Uncategorised")
myBook.addSection("Test")
myBook.addSection("Empty")
#Create three sections
myBook.addPage("belongs to uncategorised")
#Add page with no section parameter (uncategorised).
myBook.addPage("Belongs to test", "Test")
#Add page to section "Test"
myBook.addPage("Belongs to uncategorised again")
#Another uncategorised page
for x in range(0, 3):
print "Populated section '", myBook.Sections[x].name, "', with: ", len(myBook.Sections[x].childPages), " child pages."
Выходные данные показывают, что все три секции создаются в порядке, но каждая секция имеет 3 дочерних страниц, если напечатать имена страниц, которые появляются, что каждая страница была добавлена в каждый раздел.
Я бы очень признателен всем, кто может обнаружить мою глупую ошибку.
Заранее благодарен! :)
Вы сэр замечательны, решил, ты звезда спасибо! –