뮤트 개발일지

Python 클래스 - 모듈, 패키지, 클래스, 객체 본문

Python

Python 클래스 - 모듈, 패키지, 클래스, 객체

박뮤트 2021. 12. 20. 17:39

모듈

모듈: 함수, 변수, 클래스를 모아 놓은 파일. 다른 파이썬 프로그램에서 불러와 사용할 수 있게 만든 파이썬 파일이라고 볼 수 있다.

 

불러오는 방법

import module

or

from module import func1, func2

*를 이용하면 모듈 내 모든 것을 가져온다.

 

__name__ 변수

: 파이썬이 내부적으로 사용하는 특별한 변수.

현재 실행 중인 파일의 이름은 __main__이라는 이름으로, 

불러온 모듈의 경우, 모듈의 이름이 __name__이라는 변수에 저장된다.


패키지

패키지: 모듈들을 모아놓은 디렉토리

 

불러오는 방법

from package import module

 

패키지 안의 모든 모듈을 불러오는 방법

패키지 디렉토리 안에 __init__.py 파일을 만들고 __all__ = ['module1', 'module2'] 이런 방식으로 *로 부를 수 있는 모든 이름들을 직접 지정해줘야 한다.


클래스와 객체

클래스: 변수와 메소드(객체 내에 정의된 함수)를 정의하는 틀이다. 

객체: 클래스를 통해 생성된 것들을 객체object 또는 인스턴스instance라고 부른다.

 

클래스 정의하는 방법

class 클래스이름: 

    def __init__(self, x, y):            #클래스가 처음 호출될 때 실행될 메소드

        self_x = x                              #클래스 변수

        self_y = y

 

    def self_x(self):                         #클래스 메소드

        print(self_x)

 

    def self_y(self):

        print(self_y)

 

객체 정의하는 방법

object = 클래스이름(x, y)

 

- 변수 부르는 법

object.x

 

- 메소드 호출

object.self_x() or 클래스이름.self_x(object)

 

- 같은 클래스의 다른 객체

object1 == object2

===> false

객체는 생성될 때마다 새로운 메모리에 값을 생성하기 때문에 같은 값(인자)을 가져도 다른 값이다.

 

- 객체에 변수 추가하기

object.z = 0

객체이름.변수 = 값 입력하여 객체에 변수를 추가할 수 있다.

 

* 메소드 생성에 유의할 점

메소드를 클래스 내부에 선언할 때 첫 번째 매개변수는 반드시 현재 클래스의 객체(self)가 되어야 한다.

만약 메소드 내부에서 변수 선언을 할 때 self.와 함께 선언하지 않을 경우 그 변수는 지역변수가 된다.