Рубрики
Без рубрики

Как исправить ошибку: «NONETYPE» объект не имеет атрибута «Группа»?

Сводка: Ошибка атрибута Nonetype возникает, когда тип ссылования объекта нет. Чтобы обрабатывать эту ошибку, вы можете либо использовать блоки TRY-BLOCK, или вы также можете использовать операторы, если они в соответствии с вашими требованиями. В этой статье вы узнаете о ошибках атрибутов с помощью многочисленных сценариев / примеров, на которых вы столкнулись … Как исправить ошибку: «Nonetype» Объект не имеет атрибута «Группа»? Читать далее “

Автор оригинала: Shubham Sayon.

Резюме: Ошибка атрибута Nonetype возникает, когда Тип объекта, ссылающегося, это Нет Отказ Чтобы обработать эту ошибку, вы можете либо использовать попробуйте, кроме Блоки или вы также можете использовать операторы, если они в соответствии с вашими требованиями.

В этой статье вы узнаете о ошибках атрибутов с помощью многочисленных сценариев/примеров, в которых вы столкнулись с такими ошибками, и как иметь дело с ошибкой. Итак, без дальнейшей задержки давайте погрузимся в нашу дискуссию.

❖ Ошибка атрибута

Прежде чем мы узнаем, как разрешить Ошибка атрибута . , важно понимать, какова ошибка атрибута или почему мы столкнулись с ошибкой атрибута?

Что такое атрибут в Python?

В Python атрибут можно рассматривать как любое свойство, связанное с конкретным типом объекта. Например, Вставить , Сортировать и Удалить некоторые из атрибутов Список Тип объекта.

Это приводит нас к вопросу, Что такое ошибка атрибута?

Whenever you try to reference an invalid attribute, you get an "attribute error". 

Другими словами, ошибки атрибутов поднимаются при попытке доступа к определенному атрибуту определенного объекта, однако объект не обладает вызывающим атрибутом. Давайте понять это со ссылкой на наш предыдущий пример списка Tye Object. С Вставить Является ли атрибутом объекта типа списка, мы не столкнулись с проблемами при использовании Вставить со списком. Тем не менее, а кортеж не обладает Вставить атрибут. Следовательно, если вы попытаетесь ссылаться на Вставить Атрибут относительно кортежа вы получите Ошибка атрибута.

Пример:

tup = ("Square", "Rectangle", "Pentagon")
tup.insert(2,'circle')
print(tup)

Выход:

AttributeError: 'tuple' object has no attribute 'insert'

Это приводит нас к следующему этапу нашей дискуссии, где мы обсудим «NoneType» объект не имеет атрибута «XYZ» ошибка.

❖ объект «NONETYPE» не имеет атрибута «XYZ»

Могут быть случаи, когда вы столкнулись с ошибкой, который говорит:

AttributeError: 'NoneType' object has no attribute 'something'

Давайте попробуем рассекать нашу проблему и понять сценарии, которые могут вызвать такие AttributeError Отказ

Итак, что такое Неточный должен означать?

Неточный означает, что любой класс или объект, который вы пытаетесь получить доступ, это Нет Отказ Следовательно, всякий раз, когда есть функциональный вызов или назначение в отношении этого объекта, он не удастся или вернет неожиданный выход.

Вы можете столкнуться с такими Ошибка атрибута . в многочисленных сценариях. Давайте посмотрим на некоторые сценарии, где вы можете столкнуться с такой ошибкой.

✨ Сценарий 1.

x1 = None
print(x1.something)

Выход:

  File "D:/PycharmProjects/Errors/attribute_error.py", line 2, in 
    print(x1.something)
AttributeError: 'NoneType' object has no attribute 'something'

✨ Сценарий 2.

x1 = None
x1.some_attribute = "Finxter"

Выход:

Traceback (most recent call last):
  File "D:/PycharmProjects/Errors/attribute_error.py", line 2, in 
    x1.some_attribute = "FINXTER"
AttributeError: 'NoneType' object has no attribute 'some_attribute'

✨ Сценарий 3.

def foo(a):
    if a < 0:
        return a


y = foo(5)
print(y.func())

Выход:

Traceback (most recent call last):
  File "D:/PycharmProjects/Errors/attribute_error.py", line 7, in 
    print(y.func())
AttributeError: 'NoneType' object has no attribute 'func'

Объяснение: В приведенном выше коде вызов функции не возвращает ничего или другое, он возвращает Нет и мы пытаемся получить доступ к несуществующему атрибуту этого Нет Тип объекта.

✨ Решение 1: Используйте If-else

Чтобы избежать Неточный Ошибка атрибута Вы можете использовать операторы IF-Ever, соответствующим образом устранить или пропустить ситуацию, когда возвращенный тип объекта является Нет Отказ

x1 = None
if x1 is not None:
    x1.some_attribute = "Finxter"
else:
    print("The type of x1 is ", type(x1))

Выход:

The type of x1 is  

✨ Решение 2: Используйте TRY – кроме блоков (обработка исключения)

Еще один обходной путь для решения ошибки атрибута – использовать Exception English I.e. попробуйте и кроме блоки.

Пример:

def foo(a):
    if a < 0:
        return a


x = foo(-1)
y = foo(5)
try:
    print(x)
    print(y.func()) # Raises an AttributeError
except AttributeError:
    print("No such Attribute!")

Выход:

-1
No such Attribute!

❖ Как исправить ошибку: «Nonetype» объект не имеет атрибута «Группа»?

Так как мы уже обсудили причины получения Неточный Ошибка атрибута и способы решения таких ошибок, давайте посмотрим на очень задаваемый вопрос на основе нашего предыдущего обсуждения.

🔔 AttributeError: объект «NONETYPE» не имеет атрибута «Группа»

Пример:

import re

# Search for an upper case "S" character in the beginning of a word, and print the word:

txt = "The rain in Spain"
for i in txt.split():
    x = re.match(r"\bS\w+", i)
    print(x.group())

Выход:

Traceback (most recent call last):
  File "D:/PycharmProjects/Errors/attribute_error.py", line 9, in 
    print(x.group())
AttributeError: 'NoneType' object has no attribute 'group'

Причина:

Код встречает ошибку атрибута, потому что в первой итерации он не может найти совпадение, поэтому х Возвращает Нет Отказ Следовательно, когда мы пытаемся использовать атрибут для Неточный Объект возвращает ошибку атрибута.

Решение:

Пренебрежение Группа () для ситуации, где х Возвращает Нет И, таким образом, не соответствует регелесу. Поэтому используйте попробуйте, кроме Блок такой, что ошибка атрибута обрабатывается за исключением блока. Следующий код будет дальше уточнить вещи:

import re


txt = "The rain in Spain"
for i in txt.split():
    x = re.match(r"\bS\w+", i)
    try:
        print(x.group())
    except AttributeError:
        continue

Выход:

Spain

Примечание: Приведенный выше пример сделки с Regex Отказ Вы хотите освоить сверхдержаву Regeex? Проверьте нашу книгу Самый умный способ изучать регулярные выражения в Python С инновационным 3-ступенчатым подходом для активного обучения: (1) Изучение книги главы, (2) Решите головоломки кода и (3) Смотреть воспроизведение главы видео.

Заключение

Основные области, охватываемые этой статьей:

  • Что такое Ошибка атрибута . ?
  • Что такое Неточный Ошибка атрибута?
  • Сценарии, когда мы столкнулись с ошибками атрибутов.
  • Методы для решения ошибки атрибута:
    • используя, если иначе
    • используя попробуйте
  • Как исправить ошибку: «NONETYPE» объект не имеет атрибута «Группа»?

Я надеюсь, что вы наслаждались этой статьей и узнали о Ошибки атрибута Отказ Пожалуйста, Оставайтесь настроиться и Подписаться Для более интересных статей!

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @: