💡 인스턴스와 변수들에 대해 설명하시오
인스턴스(instance)
: 인스턴스란 객체 지향 프로그래밍(Object Oriented Programming)에서 class에 소속된 개별적인 객체
객체(object)
: OOP적 관점에서 객체와 인스턴스의 차이점으로는 객체는 선언, 인스턴스는 실체화
클래스의 타입으로 선언 되었을 때 객체, 그 객체가 메모리에 할당되어 실제 사용될 때는 인스턴스
인스턴스화(instantiate)
: 정의한 클래스를 사용해 구체적인 객체를 만들어내는 것이 인스턴스화
변수(Variable)
: 데이터를 저장하고 추후에 사용할 수 있게 해주는 메모리 공간
쉬운말 : 어떤 값을 임시로 혹은 영구적으로 기억해두기 위해 값에 이름표를 붙여두는 것
- 매개변수 = 인자 = parameter(인자)
함수를 호출할 때 전달하는 값 - 전역변수
코드 전체 영역에서 접근 및 사용이 가능한 변수, 함수 밖에서 선언, 최대한 제한해서 사용하기 - 지역변수
함수 내 영역에서 접근 및 사용이 가능한 변수, 함수 안에서 선언 - 정적변수
코드 실행 시 한 번만 메모리에 할당되는 변수, 특정 함수 내에서 'static' 키워드를 사용하여 선언
매개변수 = 인자 = parameter : 함수에서 전달된 값을 받는 변수라면
인수 = argument : 실제로 전달된 값
참고 : https://bskyvision.com/entry/헷갈리는-코딩용어-매개변수parameter와-인수argument
+++
클래스변수와 인스턴스 변수
클래스 변수는 클래스 자체에서 접근이 가능한 변수, 인스턴스 변수는 생성된 인스턴스로 접근이 가능한 변수이다.
따라서 클래스 안에 student_count 클래스 변수를 선언하고, 생성자 메서드에서 쓴 것과 같이 Student.student_count += 1 처럼 클래스로 접근하여 사용이 가능하다. 인스턴스 변수는 self가 붙어 있다. 객체를 통하여 접근이 가능하기 때문이다.
class Student():
# 클래스 변수
student_count = 0
def __init__(self, name, number, grade, details, email=None):
# 인스턴스 변수
self._name = name
self._number = number
self._grade = grade
self._details = details
self._email = email
Student.student_count += 1
인스턴스란 : https://velog.io/@k7nsuy/인스턴스란
클래스 기초, 클래스변수와 인스턴스 변수 : https://silvercoding.tistory.com/19
'CS > computer science' 카테고리의 다른 글
[기술면접] cs 문답 | CPU process, 관계형DB KEY (0) | 2023.08.25 |
---|---|
[기술면접] CS 문답 | os : memory (0) | 2023.08.24 |
[기술면접] CS 문답 | 멀티프로세스 상세 (0) | 2023.08.23 |
[기술면접] CS 문답 | 프로세스 vs 스레드, 동시성 병렬성 (0) | 2023.08.22 |
[기술면접] CS | 프로그램, 프로세스, 스레드 (0) | 2023.08.18 |