# Python interview 예상 질문 100개
# 1. Python에서 리스트와 튜플의 차이점은 무엇인가요?
- 리스트는 mutable(변경 가능)한 객체인 반면, 튜플은 immutable(불변)한 객체입니다. 즉, 리스트는 수정, 추가, 삭제가 가능하지만 튜플은 한번 생성되면 변경할 수 없습니다.
# 2. 파이썬에서 deepcopy
와 shallow copy
의 차이점을 설명해주세요.
shallow copy
는 객체의 참조를 복사합니다. 즉, 객체 내부의 내용은 복사되지 않고, 원본 객체와 복사본이 동일한 객체를 참조하게 됩니다. 반면,deepcopy
는 객체 내부의 모든 객체를 재귀적으로 복사하여 원본 객체와 복사본이 서로 독립적인 객체를 갖도록 합니다.
# 3. 파이썬에서 @staticmethod
와 @classmethod
의 차이점은 무엇인가요?
@staticmethod
는 인스턴스나 클래스 상태와 상관없이 독립적인 메소드를 정의할 때 사용됩니다.@classmethod
는 첫 번째 인자로 클래스 자체를 받으며, 클래스 레벨에서 작업할 때 사용됩니다.
# 4. Python에서 self
의 역할은 무엇인가요?
self
는 클래스의 인스턴스 자신을 참조하는 변수입니다. 메소드 내에서 인스턴스의 속성에 접근하거나, 다른 메소드를 호출할 때 사용됩니다.
# 5. 파이썬에서 lambda
함수의 특징은 무엇인가요?
lambda
함수는 한 줄로 정의되는 익명 함수로, 짧은 코드로 간단한 함수가 필요할 때 사용됩니다.lambda
는 이름이 없으며, 주로map()
,filter()
,reduce()
와 같은 함수에서 사용됩니다.
# 6. 파이썬에서 with
문을 사용하는 이유는 무엇인가요?
with
문은 파일 열기, 네트워크 연결 등 자원을 자동으로 관리하도록 돕습니다. 자원이 사용된 후 자동으로 정리되도록 하여 코드의 가독성을 높이고, 예외 처리와 자원 누수를 방지합니다.
# 7. Python에서 try
, except
구문은 어떻게 사용되며, 예외 처리는 어떻게 하나요?
try
블록에서 예외가 발생할 가능성이 있는 코드를 작성하고,except
블록에서 예외가 발생했을 때 처리할 코드를 작성합니다. 특정 예외를 처리하거나, 모든 예외를 잡을 수 있습니다.
# 8. 파이썬에서 global
키워드의 역할을 설명해주세요.
global
키워드는 함수 내에서 글로벌 변수를 참조하거나 수정할 때 사용됩니다. 이를 사용하지 않으면 함수 내에서 새로운 지역 변수가 생성됩니다.
# 9. 파이썬에서 enumerate()
함수의 사용법은 무엇인가요?
enumerate()
함수는 리스트나 튜플과 같은 반복 가능한 객체를 인덱스와 함께 반환합니다. 주로for
루프에서 인덱스를 추적하며, 인덱스와 값 모두를 처리할 때 유용합니다.
# 10. Python에서 join()
메소드의 사용법은 무엇인가요?
join()
메소드는 문자열 리스트나 튜플을 하나의 문자열로 결합할 때 사용됩니다. 구분자를 지정하여 각 항목 사이에 삽입할 수 있습니다.
# 11. 파이썬에서 __init__()
메소드의 역할은 무엇인가요?
__init__()
는 클래스의 생성자입니다. 인스턴스가 생성될 때 자동으로 호출되며, 객체의 초기화를 담당합니다.
# 12. 파이썬에서 assert
문은 무엇을 할 때 사용하나요?
assert
문은 조건이False
일 때AssertionError
예외를 발생시킵니다. 주로 디버깅이나 테스트 중에 예상한 조건이 만족되지 않으면 예외를 발생시키는 데 사용됩니다.
# 13. 파이썬에서 map()
함수의 역할은 무엇인가요?
map()
함수는 주어진 함수를 반복 가능한 객체의 각 항목에 적용하여 새로운 리스트를 반환합니다.lambda
와 함께 자주 사용됩니다.
# 14. 파이썬에서 filter()
함수는 무엇을 하나요?
filter()
함수는 주어진 조건에 맞는 요소만을 필터링하여 반환합니다. 조건은 함수로 제공되며, 주로lambda
와 함께 사용됩니다.
# 15. Python에서 zip()
함수는 무엇을 하나요?
zip()
함수는 여러 개의 반복 가능한 객체를 하나의 튜플로 묶어줍니다. 각각의 객체에서 동일한 인덱스에 위치한 요소들을 하나의 튜플로 묶어 반환합니다.
# 16. 파이썬에서 is
와 ==
의 차이는 무엇인가요?
is
는 객체의 아이디가 같은지를 확인하고,==
는 객체의 값이 같은지를 비교합니다.is
는 주로 객체의 동일성을 비교할 때 사용됩니다.
# 17. 파이썬에서 del
키워드의 역할은 무엇인가요?
del
키워드는 객체나 리스트 항목을 삭제할 때 사용됩니다. 변수, 리스트 항목, 딕셔너리 항목 등을 삭제할 수 있습니다.
# 18. 파이썬에서 super()
의 사용법과 역할은 무엇인가요?
super()
는 부모 클래스의 메소드를 호출할 때 사용됩니다. 상속받은 클래스에서 부모 클래스의 메소드를 오버라이드하거나 호출할 때 유용하게 사용됩니다.
# 19. 파이썬에서 @property
데코레이터는 무엇인가요?
@property
데코레이터는 클래스의 메소드를 속성처럼 사용할 수 있게 해줍니다. 메소드 호출 없이 객체의 속성처럼 값을 접근할 수 있도록 합니다.
# 20. 파이썬에서 __str__()
메소드의 역할은 무엇인가요?
__str__()
메소드는 객체를 문자열로 변환할 때 호출됩니다. 객체를 출력할 때 사용자 정의 형식을 제공하고자 할 때 사용됩니다.
# 21. 파이썬에서 os
모듈의 역할은 무엇인가요?
os
모듈은 운영 체제와 상호작용하는 기능을 제공합니다. 파일 경로 조작, 환경 변수 처리, 파일 시스템 조작 등의 작업을 할 수 있습니다.
# 22. 파이썬에서 collections
모듈의 주요 데이터 구조를 설명해주세요.
collections
모듈에는deque
,Counter
,OrderedDict
,defaultdict
등이 포함됩니다. 이들은 기본 데이터 구조보다 기능이 확장된 형태로, 보다 효율적인 데이터 처리를 가능하게 합니다.
# 23. 파이썬에서 re
모듈의 역할은 무엇인가요?
re
모듈은 정규 표현식을 처리하는 기능을 제공합니다. 문자열 검색, 치환, 패턴 매칭 등을 효율적으로 할 수 있습니다.
# 24. 파이썬에서 try-except-finally
구문의 용도는 무엇인가요?
finally
블록은 예외 발생 여부와 상관없이 반드시 실행됩니다. 예외가 발생하더라도 자원 해제 등의 작업을 보장하기 위해 사용됩니다.
# 25. 파이썬에서 pickle
모듈의 용도는 무엇인가요?
pickle
모듈은 파이썬 객체를 직렬화하여 파일로 저장하거나, 파일에서 읽어들여 객체로 복원할 수 있게 해줍니다.
# 26. 파이썬에서 multiprocessing
모듈의 역할은 무엇인가요?
multiprocessing
모듈은 멀티코어 시스템에서 병렬 처리를 가능하게 해주는 모듈입니다. 프로세스를 생성하여 여러 작업을 동시에 실행할 수 있습니다.
# 27. 파이썬에서 threading
모듈과 multiprocessing
모듈의 차이점은 무엇인가요?
threading
모듈은 멀티스레딩을 제공하며, 주로 I/O 바운드 작업에서 성능 향상을 기대할 수 있습니다. 반면,multiprocessing
모듈은 멀티프로세싱을 제공하며, CPU 바운드 작업에서 성능 향상이 필요할 때 사용됩니다.
# 28. 파이썬에서 asyncio
모듈은 어떤 역할을 하나요?
asyncio
모듈은 비동기 프로그래밍을 지원하는 라이브러리로, 코루틴을 사용하여 I/O 바운드 작업을 효율적으로 처리할 수 있게 도와줍니다.
# 29. 파이썬에서 __call__()
메소드의 용도는 무엇인가요?
__call__()
메소드는 객체를 함수처럼 호출할 수 있게 해주는 메소드입니다. 객체를 함수처럼 사용할 수 있게 하여, 코드의 가독성을 높이고 유연한 설계를 가능하게 합니다.
# 30. 파이썬에서 len()
함수의 역할은 무엇인가요?
len()
함수는 객체의 길이나 크기를 반환합니다. 리스트, 문자열, 튜플 등 반복 가능한 객체에서 항목의 개수를 반환합니다.
# 31. 파이썬에서 staticmethod
와 classmethod
의 차이점은 무엇인가요?
staticmethod
는 클래스나 인스턴스를 참조하지 않으며, 독립적인 함수처럼 동작합니다.classmethod
는 첫 번째 인자로 클래스를 받으며, 클래스 레벨에서 작업을 할 때 사용됩니다.
# 32. 파이썬에서 isinstance()
함수의 역할은 무엇인가요?
isinstance()
함수는 객체가 특정 클래스 또는 클래스의 인스턴스인지 확인하는 데 사용됩니다.isinstance(object, class)
형태로 사용되며, 상속 관계도 고려합니다.
# 33. 파이썬에서 id()
함수는 무엇을 반환하나요?
id()
함수는 객체의 고유한 식별자(ID)를 반환합니다. 이 ID는 객체의 메모리 주소와 일치하며, 객체가 동일한지 비교하는 데 사용할 수 있습니다.
# 34. 파이썬에서 super()
함수는 무엇을 하나요?
super()
함수는 부모 클래스의 메소드를 호출할 때 사용됩니다. 상속 관계에서 부모 클래스의 메소드를 명시적으로 호출하여 코드의 재사용성을 높입니다.
# 35. 파이썬에서 __str__()
메소드의 역할은 무엇인가요?
__str__()
메소드는 객체를 문자열로 표현할 때 사용됩니다.print()
함수나 문자열 출력 시 호출되며, 객체를 사람이 읽을 수 있는 형식으로 변환합니다.
# 36. 파이썬에서 __repr__()
메소드의 역할은 무엇인가요?
__repr__()
메소드는 객체의 공식적인 문자열 표현을 반환합니다. 주로 개발자들이 객체를 디버깅할 때 사용되며,repr()
함수나 셸에서 객체를 출력할 때 호출됩니다.
# 37. 파이썬에서 open()
함수는 무엇을 하나요?
open()
함수는 파일을 열고, 파일 객체를 반환합니다. 파일을 읽거나 쓰기 모드로 열 수 있으며, 파일이 없으면 새로 생성할 수도 있습니다.
# 38. 파이썬에서 os.path
모듈을 사용하는 예를 들어주세요.
os.path
모듈은 파일 경로를 다루는 다양한 함수들을 제공합니다. 예를 들어,os.path.join()
은 파일 경로를 안전하게 결합하며,os.path.exists()
는 파일이나 디렉터리가 존재하는지 확인합니다.
# 39. 파이썬에서 try-except-else-finally
구문의 역할은 무엇인가요?
else
블록은 예외가 발생하지 않은 경우에 실행됩니다.finally
블록은 예외 발생 여부와 상관없이 항상 실행됩니다. 예외 처리 후 추가적인 처리가 필요한 경우에 유용합니다.
# 40. 파이썬에서 with
문을 사용하는 이유는 무엇인가요?
with
문은 리소스 관리(파일, 네트워크 연결 등) 후 자원 해제를 자동으로 처리하는 방법입니다. 파일을 열고 작업한 후 자동으로 파일을 닫는 데 유용합니다.
# 41. 파이썬에서 yield
키워드의 역할은 무엇인가요?
yield
는 제너레이터 함수에서 값을 반환할 때 사용됩니다.yield
를 사용하면 함수가 중간에 값을 반환하고, 함수 실행을 일시 중지시켜 다음 호출에서 다시 실행을 이어갈 수 있습니다.
# 42. 파이썬에서 제너레이터와 이터레이터의 차이점은 무엇인가요?
- 제너레이터는
yield
키워드를 사용하여 값을 하나씩 반환하는 함수입니다. 이터레이터는__iter__()
와__next__()
메소드를 구현한 객체로, 값을 하나씩 반환할 수 있는 객체입니다. 제너레이터는 이터레이터의 한 형태입니다.
# 43. 파이썬에서 defaultdict
와 dict
의 차이점은 무엇인가요?
defaultdict
는 기본값을 설정할 수 있는 딕셔너리입니다. 딕셔너리에서 없는 키를 접근할 때 기본값을 반환하며,dict
는 키가 없으면KeyError
를 발생시킵니다.
# 44. 파이썬에서 Counter
모듈의 사용법은 무엇인가요?
Counter
는 컬렉션 모듈에서 제공하는 클래스이며, 항목들의 개수를 셀 수 있는 객체입니다. 예를 들어,Counter(['a', 'b', 'a'])
는{'a' 2, 'b' 1}
과 같은 결과를 반환합니다.
# 45. 파이썬에서 itertools
모듈의 사용법은 무엇인가요?
itertools
모듈은 반복 가능한 객체를 다루는 유용한 함수들을 제공합니다. 예를 들어,itertools.combinations()
는 주어진 객체에서 가능한 모든 조합을 생성합니다.
# 46. 파이썬에서 map()
함수는 어떻게 사용하나요?
map()
함수는 주어진 함수를 반복 가능한 객체의 모든 항목에 적용하고 그 결과를 반환합니다. 예를 들어,map(lambda x x * 2, [1, 2, 3])
는[2, 4, 6]
을 반환합니다.
# 47. 파이썬에서 filter()
함수는 어떻게 사용하나요?
filter()
함수는 주어진 함수의 조건을 만족하는 항목만 필터링하여 반환합니다. 예를 들어,filter(lambda x x > 0, [-1, 0, 1])
는[1]
을 반환합니다.
# 48. 파이썬에서 reduce()
함수는 어떻게 사용하나요?
reduce()
함수는 주어진 함수를 반복적으로 적용하여 단일 값을 반환합니다. 예를 들어,reduce(lambda x, y x + y, [1, 2, 3])
는6
을 반환합니다.
# 49. 파이썬에서 args
와 kwargs
의 차이점은 무엇인가요?
*args
는 위치 기반 인수들을 튜플 형태로 받으며,kwargs
는 키워드 인수들을 딕셔너리 형태로 받습니다.args
는 위치 인수로,kwargs
는 이름 인수로 사용됩니다.
# 50. 파이썬에서 self
와 cls
의 차이점은 무엇인가요?
self
는 인스턴스 메소드에서 사용되며, 객체 자신을 참조합니다.cls
는 클래스 메소드에서 사용되며, 클래스 자신을 참조합니다.
# 51. 파이썬에서 함수의 기본값 인수를 정의할 때의 주의사항은 무엇인가요?
- 기본값 인수로 가변 객체(리스트, 딕셔너리 등)를 사용하지 않는 것이 좋습니다. 기본값 인수는 함수 정의 시 한 번만 평가되므로, 가변 객체를 기본값으로 사용하면 의도치 않은 동작이 발생할 수 있습니다.
# 52. 파이썬에서 sorted()
함수는 어떻게 사용하나요?
sorted()
함수는 반복 가능한 객체를 정렬하여 새로운 리스트로 반환합니다. 기본적으로 오름차순 정렬되며,reverse=True
로 내림차순 정렬할 수 있습니다.
# 53. 파이썬에서 any()
와 all()
함수의 차이점은 무엇인가요?
any()
함수는 반복 가능한 객체에서 하나라도True
인 값이 있으면True
를 반환합니다.all()
함수는 모든 값이True
일 때만True
를 반환합니다.
# 54. 파이썬에서 zip()
함수는 어떻게 사용하나요?
zip()
함수는 여러 개의 반복 가능한 객체를 묶어 튜플로 반환합니다. 예를 들어,zip([1, 2], ['a', 'b'])
는[(1, 'a'), (2, 'b')]
를 반환합니다.
# 55. 파이썬에서 del
키워드는 어떻게 사용되나요?
del
키워드는 변수나 객체를 삭제하는 데 사용됩니다. 예를 들어,del my_list[0]
은 리스트의 첫 번째 항목을 삭제합니다.
# 56. 파이썬에서 exec()
함수는 무엇을 하나요?
exec()
함수는 문자열로 된 파이썬 코드를 실행합니다. 보안상 위험할 수 있으므로 신뢰할 수 있는 코드만 실행하는 것이 중요합니다.
# 57. 파이썬에서 __init__()
과 __new__()
메소드의 차이점은 무엇인가요?
__new__()
는 객체를 생성하는 메소드로, 객체가 생성될 때 호출됩니다.__init__()
는 객체가 생성된 후 초기화 작업을 수행하는 메소드입니다.
# 58. 파이썬에서 hash()
함수는 무엇을 하나요?
hash()
함수는 객체의 해시 값을 반환합니다. 이 값은 객체를 해시 테이블에서 고유하게 식별할 수 있게 해줍니다.
# 59. 파이썬에서 frozenset
의 특성은 무엇인가요?
frozenset
은 불변(immutable) 집합입니다.set
과 유사하지만 한 번 생성된 후 항목을 변경할 수 없습니다.
# 60. 파이썬에서 enumerate()
함수는 어떻게 사용하나요?
enumerate()
함수는 반복 가능한 객체에서 인덱스와 항목을 함께 반환하는 이터레이터를 반환합니다. 예를 들어,enumerate(['a', 'b', 'c'])
는[(0, 'a'), (1, 'b'), (2, 'c')]
를 반환합니다.
# 61. 파이썬에서 클래스란 무엇인가요?
- 클래스는 객체를 만들기 위한 설계도 또는 청사진입니다. 클래스는 속성(변수)과 메소드(함수)를 포함하여, 객체가 가져야 할 특성 및 동작을 정의합니다.
# 62. 객체란 무엇인가요?
- 객체는 클래스에서 정의한 속성과 메소드를 가진 실체입니다. 클래스는 객체를 생성하는 틀이고, 객체는 그 틀을 바탕으로 메모리에 생성된 실제 인스턴스입니다.
# 63. 파이썬에서 클래스 변수와 인스턴스 변수의 차이점은 무엇인가요?
- 클래스 변수는 클래스에서 정의되며, 클래스의 모든 인스턴스가 공유합니다. 인스턴스 변수는 각 객체(인스턴스)에서 개별적으로 정의되며, 객체마다 고유한 값을 가질 수 있습니다.
# 64. 클래스에서 메소드란 무엇인가요?
- 메소드는 클래스 내에서 정의된 함수로, 클래스의 객체가 호출할 수 있는 동작을 정의합니다. 메소드는 첫 번째 인자로
self
를 받으며, 이를 통해 객체의 속성에 접근하거나 수정할 수 있습니다.
# 65. 파이썬에서 self
란 무엇인가요?
self
는 클래스의 인스턴스를 참조하는 변수로, 인스턴스 메소드 내에서 객체의 속성에 접근하거나 변경할 때 사용됩니다.self
는 파이썬에서 암묵적으로 전달되지만, 메소드 정의 시 명시적으로 작성해야 합니다.
# 66. 파이썬에서 클래스 상속이란 무엇인가요?
- 클래스 상속은 하나의 클래스가 다른 클래스의 속성과 메소드를 상속받아 사용하는 방식입니다. 이를 통해 코드의 재사용성을 높일 수 있습니다.
# 67. 상속을 사용할 때 super()
의 역할은 무엇인가요?
super()
는 부모 클래스의 메소드를 호출할 때 사용됩니다. 상속 관계에서 부모 클래스의 메소드를 명시적으로 호출하여, 부모 클래스의 동작을 확장하거나 변경할 수 있습니다.
# 68. 파이썬에서 다형성이란 무엇인가요?
- 다형성은 동일한 이름의 메소드가 서로 다른 클래스에서 다르게 동작하는 특성입니다. 예를 들어, 부모 클래스와 자식 클래스에서 동일한 메소드 이름을 사용하되, 자식 클래스에서 기능을 변경하는 방식입니다.
# 69. 추상 클래스(Abstract Class)란 무엇인가요?
- 추상 클래스는 직접 인스턴스를 생성할 수 없으며, 다른 클래스에서 상속받아 구현해야 하는 클래스입니다. 추상 메소드를 포함하고 있어, 해당 메소드는 자식 클래스에서 반드시 구현해야 합니다.
# 70. 파이썬에서 @staticmethod
와 @classmethod
의 차이점은 무엇인가요?
@staticmethod
는 클래스나 인스턴스를 참조하지 않는 메소드로, 클래스 내에서 독립적으로 동작하는 함수입니다.@classmethod
는 첫 번째 인자로 클래스를 받으며, 클래스와 관련된 동작을 수행합니다.
# 71. __init__()
메소드의 역할은 무엇인가요?
__init__()
메소드는 클래스의 인스턴스가 생성될 때 자동으로 호출되는 생성자 메소드입니다. 객체의 초기 상태를 설정하는 데 사용됩니다.
# 72. 파이썬에서 __del__()
메소드의 역할은 무엇인가요?
__del__()
메소드는 객체가 삭제될 때 호출되는 소멸자 메소드입니다. 주로 객체가 사용하는 리소스를 해제하는 데 사용됩니다.
# 73. 클래스 속성에 접근하는 방법은 무엇인가요?
- 클래스 속성에 접근하려면
ClassName.attribute
형식으로 접근할 수 있습니다. 인스턴스를 통해서도 접근할 수 있지만, 클래스 이름을 통해서도 접근이 가능합니다.
# 74. 파이썬에서 @property
데코레이터의 역할은 무엇인가요?
@property
는 메소드를 속성처럼 사용할 수 있게 하는 데코레이터입니다. 이를 통해 메소드 호출을 속성 접근처럼 보이게 할 수 있습니다.
# 75. 파이썬에서 __str__()
과 __repr__()
메소드의 차이점은 무엇인가요?
__str__()
은 사용자가 보기 좋은 객체의 문자열 표현을 반환하는 메소드이며,__repr__()
은 개발자가 객체를 디버깅할 때 사용하는, 더 공식적인 문자열 표현을 반환합니다.
# 76. @classmethod
를 사용한 클래스 메소드의 예를 들어주세요.
- 클래스 메소드는 첫 번째 인자로 클래스를 받으며, 클래스 자체와 관련된 동작을 할 때 사용됩니다. 예를 들어,
@classmethod def from_string(cls, str_value)
와 같은 방식으로 클래스 메소드를 정의할 수 있습니다.
# 77. __call__()
메소드의 역할은 무엇인가요?
__call__()
메소드는 객체가 함수처럼 호출될 수 있도록 하는 메소드입니다. 객체 인스턴스를 함수처럼 호출하려면 이 메소드를 구현해야 합니다.
# 78. 클래스에서 __getitem__()
메소드의 역할은 무엇인가요?
__getitem__()
메소드는 객체가 인덱싱을 사용할 수 있도록 정의되는 메소드입니다. 예를 들어,obj[index]
형태로 객체에 접근할 때 호출됩니다.
# 79. 클래스에서 __setitem__()
메소드의 역할은 무엇인가요?
__setitem__()
메소드는 객체에 인덱싱을 통해 값을 할당할 수 있도록 하는 메소드입니다. 예를 들어,obj[index] = value
형태로 값을 설정할 수 있게 합니다.
# 80. 파이썬에서 다중 상속을 사용할 때의 주의사항은 무엇인가요?
- 다중 상속을 사용할 때는 메소드 이름 충돌, 메소드 해석 순서(MRO, Method Resolution Order) 문제에 주의해야 합니다.
super()
를 사용하여 메소드 호출 순서를 명확하게 관리하는 것이 좋습니다.
# 81. 파이썬에서 is
연산자와 ==
연산자의 차이점은 무엇인가요?
is
연산자는 객체의 아이디(즉, 메모리 주소)를 비교하며,==
연산자는 객체의 값을 비교합니다. 두 객체가 동일한 값을 가질지라도 서로 다른 메모리 위치에 있으면is
는False
를 반환할 수 있습니다.
# 82. __init__()
메소드가 호출되는 시점은 언제인가요?
__init__()
메소드는 클래스의 인스턴스가 생성될 때 자동으로 호출됩니다. 객체가 생성된 후 초기화 작업을 수행하는 데 사용됩니다.
# 83. 파이썬에서 객체 지향 프로그래밍의 장점은 무엇인가요?
- 객체 지향 프로그래밍은 코드 재사용, 유지보수 용이성, 코드의 모듈화, 다형성 등의 장점을 제공합니다. 각 객체는 독립적으로 관리되므로 코드가 잘 구조화되고 유지보수가 용이합니다.
# 84. 파이썬에서 mro()
메소드의 역할은 무엇인가요?
mro()
메소드는 메소드 해석 순서(Method Resolution Order)를 반환하며, 다중 상속에서 부모 클래스 메소드를 호출하는 순서를 확인할 수 있습니다.
# 85. 파이썬에서 @staticmethod
의 사용 예시를 보여주세요.
@staticmethod
는 클래스나 인스턴스를 참조하지 않는 메소드입니다. 예를 들어,@staticmethod def add_numbers(a, b) return a + b
와 같이 사용할 수 있습니다.
# 86. 파이썬에서 __del__()
메소드가 호출되는 시점은 언제인가요?
__del__()
메소드는 객체가 가비지 컬렉터에 의해 삭제될 때 호출됩니다. 객체가 더 이상 참조되지 않으면 파이썬은 해당 객체의__del__()
메소드를 호출하여 리소스를 정리합니다.
# 87. 파이썬에서 클래스 메소드와 인스턴스 메소드의 차이점은 무엇인가요?
- 클래스 메소드는 첫 번째 인자로 클래스를 받으며, 클래스 수준에서 작업을 수행합니다. 인스턴스 메소드는 첫 번째 인자로 인스턴스를 받으며, 객체의 상태를 변경하거나 조회하는 데 사용됩니다.
# 88. 파이썬에서 상속 시 부모 클래스의 메소드를 호출하는 방법은 무엇인가요?
- 부모 클래스의 메소드를 호출하려면
super()
를 사용하거나ParentClass.method()
형식으로 호출할 수 있습니다.
# 89. __new__()
메소드의 역할은 무엇인가요?
__new__()
메소드는 객체가 생성되는 시점에 호출되는 메소드입니다. 객체를 생성하는 역할을 하며,__init__()
전에 호출됩니다.
# 90. 파이썬에서 클래스의 인스턴스와 클래스 메소드에서의 self
와 cls
의 차이점은 무엇인가요?
self
는 인스턴스 메소드에서 인스턴스 자신을 참조하며,cls
는 클래스 메소드에서 클래스를 참조합니다.
# 91. 파이썬에서 __slots__
의 역할은 무엇인가요?
__slots__
는 클래스에서 인스턴스 변수의 이름을 제한하여 메모리 사용을 최적화하는 데 사용됩니다. 이를 사용하면 동적 속성을 추가할 수 없고, 미리 정의된 속성만 사용할 수 있습니다.
# 92. 파이썬에서 @property
와 @setter
의 차이점은 무엇인가요?
@property
는 객체의 속성을 읽기 전용으로 만드는 데 사용되며,@setter
는 속성의 값을 설정하는 메소드를 정의하는 데 사용됩니다.
# 93. 파이썬에서 __contains__()
메소드의 역할은 무엇인가요?
__contains__()
메소드는 객체가 특정 항목을 포함하는지 여부를 확인하는 데 사용됩니다. 예를 들어,in
연산자를 사용할 때 호출됩니다.
# 94. 파이썬에서 객체의 비교를 위한 메소드들을 설명해주세요.
- 객체 비교를 위한 메소드로는
__eq__()
(동등 비교),__ne__()
(비동등 비교),__lt__()
(작다),__le__()
(작거나 같다),__gt__()
(크다),__ge__()
(크거나 같다) 등이 있습니다.
# 95. 파이썬에서 @classmethod
를 사용할 때의 주의사항은 무엇인가요?
@classmethod
를 사용할 때 첫 번째 인자로 클래스 자신을 전달해야 하며, 클래스 수준에서만 동작하므로 인스턴스 속성에는 접근할 수 없습니다.
# 96. 파이썬에서 다중 상속을 사용할 때 super()
가 중요한 이유는 무엇인가요?
- 다중 상속에서
super()
를 사용하면 부모 클래스의 메소드를 올바르게 호출할 수 있으며, 메소드 해석 순서(MRO)에 따라 실행되는 순서를 관리할 수 있습니다.
# 97. __iter__()
와 __next__()
메소드의 역할은 무엇인가요?
__iter__()
는 이터레이터 객체를 반환하는 메소드이고,__next__()
는 이터레이터에서 다음 값을 반환하는 메소드입니다. 이 두 메소드를 구현하면 객체는 이터레이터로 사용할 수 있습니다.
# 98. 파이썬에서 isinstance()
와 issubclass()
의 차이점은 무엇인가요?
isinstance()
는 객체가 특정 클래스의 인스턴스인지 확인하는 함수이고,issubclass()
는 클래스가 다른 클래스의 서브클래스인지 확인하는 함수입니다.
# 99. 파이썬에서 __call__()
메소드를 어떻게 사용할 수 있나요?
__call__()
메소드를 구현하면 객체를 함수처럼 호출할 수 있습니다. 이 메소드는obj()
와 같은 형태로 객체를 호출할 때 실행됩니다.
# 100. 파이썬에서 객체 지향 프로그래밍을 사용하여 코드의 재사용성을 높이는 방법은 무엇인가요?
- 상속, 다형성, 캡슐화 등을 활용하여 코드의 재사용성을 높일 수 있습니다. 상속을 통해 부모 클래스의 기능을 재사용하고, 다형성을 통해 다양한 방식으로 메소드를 확장하며, 캡슐화를 통해 객체의 상태를 안전하게 관리할 수 있습니다.