AttributeError 해결: Python에서 'Nonetype' 객체에 'Group' 속성이 없습니다.

Fariba Laiq 2023년6월21일
  1. Python에서 AttributeError: 'NoneType' 개체에 'group' 속성이 없습니다.의 원인
  2. try-except를 사용하여 Python에서 AttributeError: 'NoneType' 개체에 'group' 속성이 없음 해결
  3. if-else를 사용하여 Python에서 AttributeError: 'NoneType' 개체에 'group' 속성이 없음 해결
AttributeError 해결: Python에서 'Nonetype' 객체에 'Group' 속성이 없습니다.

Python 정규식(regex)은 특수 문자 또는 패턴의 문자열을 일치시키고 추출합니다. Python에서 정규 표현식이 지정된 문자열과 일치하지 않으면 AttributeError: 'NoneType' object has no attribute 'group' 정규 표현식이 발생합니다.

이 기사에서는 이러한 유형의 오류에 대한 가능한 해결책을 살펴보겠습니다.

Python에서 AttributeError: 'NoneType' 개체에 'group' 속성이 없습니다.의 원인

클래스나 데이터 유형을 정의할 때마다 해당 클래스와 관련된 속성에 액세스할 수 있습니다. 그러나 우리가 정의한 클래스가 소유하지 않은 객체의 속성이나 속성에 액세스한다고 가정합니다.

이 경우 'NoneType' 객체에 '그룹' 속성이 없음이라는 AttributeError가 발생합니다. NoneTypeNone 값을 포함하는 개체를 나타냅니다.

이러한 유형의 오류는 초기에 변수를 없음으로 설정한 경우에도 발생합니다. 다음 프로그램은 단어 시작 부분에서 대문자 F를 검색하는 프로그램입니다.

예제 코드:

# Python 3.x
import re

a = "programmig is Fun"
for i in a.split():
    b = re.match(r"\bF\w+", i)
    print(b.group())

출력:

#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'

이 오류는 정규식이 첫 번째 반복에서 문자열의 지정된 문자와 일치할 수 없기 때문에 발생합니다. 따라서 group()에 액세스할 때 컴파일러는 None 유형의 객체에 속하기 때문에 AttributeError를 표시합니다.

try-except를 사용하여 Python에서 AttributeError: 'NoneType' 개체에 'group' 속성이 없음 해결

이 오류를 제거하는 한 가지 방법은 코드에서 예외 처리를 사용하는 것입니다. 이런 식으로 제외 블록이 오류를 처리합니다.

이제 이전 프로그램을 고려하고 다음과 같이 try-except 블록을 추가합니다.

예제 코드:

# 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

출력:

#Python 3.x
Fun

이제 프로그램이 잘 작동하는 것을 볼 수 있습니다. 여기서 continue 키워드는 b가 반환하지 않는 곳을 건너뛰고 다음 반복으로 건너뛰고 F로 시작하는 단어를 검색하는 데 사용됩니다.

따라서 Fun이라는 용어가 출력에 인쇄됩니다.

if-else를 사용하여 Python에서 AttributeError: 'NoneType' 개체에 'group' 속성이 없음 해결

'NoneType' object has no attribute 'group' 오류를 방지하는 또 다른 간단한 솔루션은 프로그램에서 if-else 문을 사용하는 것입니다. 다음 프로그램은 문자열에서 1에서 5까지의 숫자를 확인합니다.

정규식과 일치하는 숫자가 없으므로 AttributeError가 발생합니다. 그러나 if-else 블록을 사용하면 오류를 피할 수 있습니다.

조건이 충족되지 않으면 일치 항목이 없을 때 else 블록의 명령문이 실행됩니다.

# 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!")

출력:

#Python 3.x
No matches!
작가: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

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.

LinkedIn

관련 문장 - Python Error