Lösen Sie AttributeError: 'Nonetype'-Objekt hat kein Attribut 'Group' in Python
-
Ursache von
AttributeError: 'NoneType' object has no attribute 'group'
in Python -
Verwenden Sie
try-except
, umAttributeError: 'NoneType' object has no attribute 'group'
in Python zu lösen -
Verwenden Sie
if-else
, umAttributeError: 'NoneType' object has no attribute 'group'
in Python zu lösen
Reguläre Python-Ausdrücke (Regex) finden und extrahieren eine Reihe von Sonderzeichen oder Mustern. In Python entsteht der Regex AttributeError: 'NoneType' object has no attribute 'group'
, wenn unser regulärer Ausdruck nicht mit dem angegebenen String übereinstimmt.
In diesem Artikel werden wir uns mögliche Lösungen für diese Art von Fehler ansehen.
Ursache von AttributeError: 'NoneType' object has no attribute 'group'
in Python
Wann immer wir eine Klasse oder einen Datentyp definieren, haben wir Zugriff auf die Attribute, die dieser Klasse zugeordnet sind. Angenommen, wir greifen auf die Attribute oder Eigenschaften eines Objekts zu, das die von uns definierte Klasse nicht besitzt.
In diesem Fall stoßen wir auf den AttributeError
, der besagt, dass das Objekt 'NoneType' kein Attribut 'Gruppe' hat
. Der NoneType
bezieht sich auf das Objekt, das den None
-Wert enthält.
Diese Art von Fehler tritt auch auf, wenn wir eine Variable anfänglich auf none
setzen. Das folgende Programm dient der Suche nach dem großen F
am Anfang eines Wortes.
Beispielcode:
# Python 3.x
import re
a = "programmig is Fun"
for i in a.split():
b = re.match(r"\bF\w+", i)
print(b.group())
Ausgang:
#Python 3.x
AttributeError Traceback (most recent call last)
C:\Users\LAIQSH~1\AppData\Local\Temp/ipykernel_2368/987386650.py in <module>
3 for i in a.split():
4 b=re.match(r"\bF\w+", i)
----> 5 print(b.group())
AttributeError: 'NoneType' object has no attribute 'group'
Dieser Fehler wird ausgelöst, weil der reguläre Ausdruck bei der ersten Iteration nicht mit dem angegebenen Buchstaben in der Zeichenfolge übereinstimmen kann. Wenn wir also auf group()
zugreifen, zeigt der Compiler einen AttributeError
an, weil es zum Objekt vom Typ None gehört.
Verwenden Sie try-except
, um AttributeError: 'NoneType' object has no attribute 'group'
in Python zu lösen
Eine Methode zur Beseitigung dieses Fehlers ist die Ausnahmebehandlung in Ihrem Code. Auf diese Weise behandelt der Block außer
den Fehler.
Betrachten Sie nun das vorherige Programm, und wir werden den try-except
-Block wie folgt hinzufügen.
Beispielcode:
# Python 3.x
import re
a = "programmig is Fun"
for i in a.split():
b = re.match(r"\bF\w+", i)
try:
print(b.group())
except AttributeError:
continue
Ausgang:
#Python 3.x
Fun
Jetzt sehen wir, dass unser Programm gut funktioniert. Das Schlüsselwort continue
wird hier verwendet, um zu überspringen, wo b
keine zurückgibt, zur nächsten Iteration springt und nach einem Wort sucht, das mit F
beginnt.
Daher wird der Begriff Fun
in der Ausgabe gedruckt.
Verwenden Sie if-else
, um AttributeError: 'NoneType' object has no attribute 'group'
in Python zu lösen
Eine weitere einfache Lösung zur Vermeidung des Fehlers 'NoneType'-Objekt hat kein Attribut 'Gruppe'
ist die Verwendung der if-else
-Anweisung in Ihrem Programm. Das folgende Programm überprüft die Zahlen in der Zeichenfolge von 1 bis 5.
Da keine Zahl zum regulären Ausdruck passt, führt dies zu einem AttributeError
. Aber mit dem if-else
-Block können wir den Fehler umgehen.
Wenn die Bedingung nicht erfüllt ist, wird die Anweisung im else
-Block ausgeführt, wenn keine Übereinstimmungen gefunden werden.
# Python 3.x
import re
a = "foo bar 678 baz"
x = r".* ([1-5]+) .*"
matches = re.match(x, a)
if matches:
print(matches.group(1))
else:
print("No matches!")
Ausgang:
#Python 3.x
No matches!
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedInVerwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung