Найти - Пользователи
Полная версия: Не могу добавить условие в классе.
Начало » Python для новичков » Не могу добавить условие в классе.
1
mark24
Всем Hi! Такая проблема, что я не могу добавить условие. Вот такой есть класс.

class UrlFinder(HTMLParser):
    ''' Класс-наследник HTMLParser. '''
    def __init__(self):
        HTMLParser.__init__(self)
        
        self.links = []
        self.pagen = []
        self.mail = []
    def handle_starttag(self, tag, attrs):
		
        attrs = dict(attrs)
        # если находим тег 'a'
        if 'a' == tag:
            try:
                if 'mailto' in attrs['href']:
		     self.mail.append(attrs['href'])
				
		if 'page' in attrs['href']:
		      self.page.append(attrs['href'])
				
		# записываем значение аттрибута href в список-свойство links нашего класса
                self.links.append(attrs['href'])
                
                if 'profile' in attrs['href']:
		      self.profile.append(attrs['href'])				
            except:
                pass     

Так вот выдает такую ошибку.
  File "testmailtoteg.py", line 29
    if 'page' in attrs['href']:
                              ^
IndentationError: unindent does not match any outer indentation level

А если убрать код:
               
 if 'page' in attrs['href']:
        self.mail.append(attrs['href'])
То все в порядке. Почему? Я вот вообще не соображу. Разве есть какое-то ограничение на кол-во условий? Я уже и пробовал elif использовать. Вообщем я в тупике. Прошу помощи.
ilnur
вроде проблема с отступами. Проверь
mark24
ilnur
вроде проблема с отступами. Проверь
Да я вот вообще не пойму. Для примера решил так сделать
 def handle_starttag(self, tag, attrs):
        attrs = dict(attrs)
        # если находим тег 'a'
        if 'a' == tag:
            try:
                self.links.append(attrs['href'])               
               
                if 'mail' in attrs['href']:
					self.mail.append(attrs['href'])								
									    
                if 'profile' in attrs['href']:
					self.profile.append(attrs['href'])		
					
		print 'test'						
					
            except:
                pass  
И все равно ошибка!!! Какого хрена! Должно же работать, но не работает.
  File "testmailtoteg.py", line 33
    print 'test'						
                     ^
IndentationError: unindent does not match any outer indentation level
lorien
У вас в коде и пробелы и знаки табуляции. Не используйте табуляцию вообще, используйте пробелы.
mark24
lorien
У вас в коде и пробелы и знаки табуляции. Не используйте табуляцию вообще, используйте пробелы.
Черт возьми! Переписывание всего класса с нуля помогло! Ну это жесть просто…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB