초보가 흔히 범하는 파이썬 실수

안하영 / 2022-10-28 18:15:49
파이썬의 간단하고 배우기 쉬운 구문은 파이썬 개발자를 헛갈리게 할 수 있다. 특히 파이썬을 처음 접하는 초보자들은 실수를 저지르게 된다. [사진출처=파이썬]
파이썬의 간단하고 배우기 쉬운 구문은 파이썬 개발자를 헛갈리게 할 수 있다. 특히 파이썬을 처음 접하는 초보자들은 실수를 저지르게 된다. [사진출처=파이썬]

파이썬(Python)은 동적 의미를 사용하는 객체 지향 고급 프로그래밍 언어다. 동적 타이핑 및 동적 바인딩과 결합된 데이터 구조의 높은 수준 개념은 기존 구성 요소와 서비스를 연결하기 위한 스크립팅, 글루 언어로 사용한다. 파이썬은 모듈과 패키지를 지원하므로 프로그램 모듈성과 코드 재사용을 장려한다.

하지만 때때로 파이썬의 간단하고 배우기 쉬운 구문은 파이썬 개발자를 헷갈리게 할 수 있다. 특히 파이썬을 처음 접하는 초보자들은 실수를 저지르게 된다. 초보자들은 주로 어떤 실수를 범할까? 인공지능, 빅데이터 전문매체 애널리틱스인사이트가 파이썬 초보자들이 저지르는 실수를 소개했다.

1. 메인이 없는 스크립트
즉시 감지되지 않으면 몇 가지 문제를 일으킬 수 있는 초보자의 실수다. 파이썬은 스크립팅 언어이므로 REPL 모드에서 호출할 수 있는 함수를 정의할 수 있다. 이 간단한 코드는 CLI python no_main_func.py에서 호출될 때 super_fun 함수를 실행한다. 그러나 코드를 노트북의 모듈로 재사용하려는 경우 어떻게 될까? 여기에서 super_fun은 스크립트를 가져올 때 자동으로 실행된다. 함수가 값비싼 계산 작업을 수행하거나 여러 스레드를 생성하는 프로세스를 호출하는 경우, 초보자들이 가장 많이 실수하게 된다.

2. 함수 인수의 기본값으로 표현식 오용
파이썬 언어를 사용하면 기본값을 제공해 함수 인수가 선택 사항임을 지정할 수 있다. 의심할 여지없이 이것은 파이썬 언어의 훌륭한 기능이지만 때로는 기본값이 변경 가능한 경우 처음 보는 사람에게 혼란을 줄 수 있다.

3. 파이썬 범위 규칙 오해
파이썬 범위 확인은 Local, Enclosing, Global 및 Built-in의 약어로 간주되는 LEGB 규칙에 의존한다. 파이썬에서 이것이 작동하는 방식에는 약간의 미묘함이 있다. 이는 우리에게 일반적인 파이썬 프로그래밍 오류를 가져오는 원인이 될 수 있다.

4. 목록을 반복하면서 목록 수정하기
목록이나 배열에서 항목을 반복하면서 삭제하는 것은 숙련된 소프트웨어 개발자라면 누구나 잘 알고 있는 파이썬 문제다. 하지만 때로는 초보자들에게 문제가 된다. 경험이 풍부한 파이썬 개발자라도 훨씬 더 복잡한 코드에서 의도하지 않게 이것에 말릴 수 있다. 하지만 다행히도 파이썬은 적절하게 적용할 경우 단순화되고 간소화된 코드를 제공할 수 있는 우아한 프로그래밍 패러다임을 통합한다. 또 다른 이점은 단순한 코드가 목록 항목을 반복하는 동안 실수로 삭제하는 버그에 물릴 가능성이 적다는 것이다.

5. 표준 라이브러리 모듈과 이름 충돌
파이썬의 장점 중 하나는 즉시 사용 가능한 풍부한 라이브러리 모듈이다. 그러나 의식적으로 피하지 않는다면 모듈 중 하나의 이름과 파이썬과 함께 제공되는 표준 라이브러리에 있는 동일한 이름을 가진 모듈 사이에 이름 충돌이 발생할 수 있다. 이것은 다른 라이브러리를 가져오는 것과 같은 주요 파이썬 실수로 이어질 수 있으며, 차례로 모듈의 파이썬 표준 라이브러리 버전을 가져오려고 시도하지만 동일한 이름을 가진 모듈이 있기 때문에 다른 패키지가 실수로 다른 버전을 가져오게 한다.

6. 부동 소수점 데이터 유형
초보자의 또 다른 파이썬 실수는 파이썬의 부동 소수점 관리다. 초보자는 종종 float를 단순한 유형으로 잘못 생각한다. 부동 소수점 유형에는 미묘하지만 중요한 특성인 내부 표현도 있다.

7. init 함수의 잘못된 적용
생성자로 사용되는 init 함수는 객체를 생성하거나 클래스에서 객체가 생성될 때 생성자로 사용되는 새 클래스 객체에 메모리를 할당하고, 클래스가 클래스의 속성을 초기화할 수 있도록 한다. 그러나 파이썬 개발자가 저지르는 일반적인 실수는 이 메서드를 값을 반환하는 데 적용하려고 시도하는 것이다. 이 문제를 해결하려면 파이썬에서 init 메서드의 기능이 생성자로만 사용된다는 점을 이해하면 된다.

[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

안하영

IT/Tech, 금융, 산업, 정치, 생활문화, 부동산, 모빌리티

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0