less than 1 minute read

init

이것이 바로 파이썬에서 특별하게 약속된 메서드 가운데 하나로, 초기화(initialize) 메서드라고도 합니다.

어떤 클래스의 객체가 만들어질 때 자동으로 호출되어서 그 객체가 갖게 될 여러 가지 성질을 정해주는 일을 합니다.

초기화 메서드와 같은 것을 자바같은 객체지향 언어에서는 생성자(constructor)라고 부릅니다.

del 메서드 (소멸자)

init 메서드와 반대로 객체가 없어질 때 호출되는 메서드도 있습니다.

이런 것을 소멸자(destructor)라고 하는데, 파이썬에서는 del 메서드가 소멸자의 역할을 맡고 있습니다.

어떤 객체가 없어지기 전에 뭔가 처리를 필요로 한다면 소멸자가 필요로 하게될것입니다.

repr 메서드

repr 메서드는 ‘문자열’을 ‘return’ 한다고 생각하면됩니다.

add 메서드

그냥 객체를 더해주는 메서드

cmp 메서드

두개의 객체를 비교하는 메서드

파이썬 패키지 에서의 init.py 과 all

init.py

  • init.py 파일은 해당 디렉터리가 패키지의 일부임을 알려주는 역할을 합니다.

  • 디렉터리에 init.py 파일이 없다면 패키지로 인식되지 않을 수도 있습니다.

all

  • 특정 디렉터리의 모듈을 *를 이용하여 import할 때에는 다음과 같이 해당 디렉터리의 init.py 파일에 __all__이라는 변수를 설정하고 import할 수 있는 모듈을 정의해 주어야 합니다.

  • __all__로 정의하지 않으면 인식되지 않습니다.

>>> from game.sound import *
>>> echo.echo_test()
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
NameError: name 'echo' is not defined

all 정의

# __init__.py
__all__ = ['echo']

Reference

  • https://nesoy.github.io/articles/2018-07/Python-init-all

  • https://wikidocs.net/89

Categories:

Updated: