파이썬에서 클래스와 모듈


19

Python에는 re특정 작업 집합을 수행하는 많은 모듈 (예 :)이 있습니다. 이 모듈의 함수를 호출하고 결과를 얻을 수 있으며 모듈 전체에 대한 아이디어가 있습니다 (이 경우 정규식 처리).

클래스는 거의 똑같은 일을하는 것처럼 보이지만 모듈보다 속성을 훨씬 더 많이 사용하는 것 같습니다.

모듈과 클래스는 어떻게 다릅니 까? (모듈을 서브 클래 싱 할 수는 없지만, 모듈입니까?) 언제 모듈 대신 클래스를 사용해야합니까?


모듈 메소드를 호출 할 때 때로는 모듈이 클래스의 인스턴스로 전달되는 경우가 있다는 것을 알고 있습니까? 예를 들어 random모듈을 참조하십시오 . re그러나 이것이 사실인지는 기억 나지 않습니다 .
jscs

1
알아야 할 관련 개념- 모듈 대 패키지?
RBT

답변:


12

파이썬 모듈은 재사용 가능한 코드를 캡슐화하기위한 패키지 일뿐입니다. 모듈은 일반적으로 항상 그런 것은 아니지만 __init__.py파일이 들어 있는 폴더 에 있습니다. 모듈은 함수뿐만 아니라 클래스도 포함 할 수 있습니다. import키워드를 사용하여 모듈을 가져옵니다 .

파이썬은 정의를 파일에 넣고 스크립트 나 인터프리터의 대화 형 인스턴스에서 정의를 사용하는 방법을 가지고 있습니다. 이러한 파일을 모듈이라고합니다. 모듈의 정의를 다른 모듈이나 기본 모듈로 가져올 수 있습니다.

다음 링크에서 Python 모듈에 대해 자세히 알아보십시오.

https://docs.python.org/2/tutorial/modules.html (Python 2) https://docs.python.org/3/tutorial/modules.html (Python 3)

반면에 클래스는 기본 응용 프로그램 코드 또는 응용 프로그램에서 가져온 모듈 내에서 정의 할 수 있습니다. 클래스는 객체 지향 프로그래밍의 코드이며 속성과 메서드를 포함 할 수 있습니다.

다음 링크에서 Python 클래스에 대해 자세히 알아보십시오.

https://docs.python.org/2/tutorial/classes.html(Python 2) https://docs.python.org/3/tutorial/classes.html(Python 3)


3
따라서 클래스에 함수 만있는 경우에도 모듈에 단일 클래스를 갖는 것은 나쁘지 않습니다. 그런 상황에서는 일반적으로 수업을하지 않고 모듈을 만들어야한다고 생각합니다. 모듈 대신 클래스를 사용하는시기에 관한 기본 규칙이 있습니까? (이것이 제가 묻고 자하는 질문입니다. 더 명확하게하기 위해 질문을 편집해야합니까?)
Pro Q

6
클래스의 인스턴스를 여러 개 만들 수 있지만 모듈의 인스턴스를 만들 수는 없습니다. 모듈을 정적 클래스 또는 싱글 톤과 비교할 수 있습니다.
Eneko Alonso

1
모듈이 항상 __init__.py파일이 있는 폴더에있는 것은 아닙니다 .
multigoodverse

1
@ProQ 파이썬과 같은 언어 (예 : Java와 달리 클래스가 아닌 모듈에서 함수를 가질 수있는 언어)에서는 정적 함수를 모듈 수준으로 유지하는 것이 일반적으로 좋은 형식입니다. 클래스는 자체 상태의 인스턴스를 의미합니다.
터크 사라 마

-2

예를 들어 순수한 함수가 많으면 re모듈에 넣습니다. 해당 코드와 함께 유지하려는 상태 (예 : 한 번 읽은 파일이지만 여러 함수에서 데이터를 사용하는 파일)가 있음을 알면 클래스를 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.