inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

타입 파이썬! 올바른 class 사용법과 객체지향 프로그래밍

@staticmethod 이해

staticmethod의 존재이유

331

Louie(루이)

작성한 질문수 16

3

안녕하세요. 강의 잘 보고 있습니다.

다름이 아니라 스태틱메소드는 왜 존재하는지 의문이 생겼습니다.

제가 생각했을 때 staticmethod를 작성하면 장점은 그저 class의 namespace안에 들어오는 정도입니다.

class namespace에 들어가게 되면 클래스나 인스턴스를 통해서 method를 실행한다는 명시적인 사실만 있다고 판단됩니다. 

무엇때문에 staticmethod가 존재하는걸까요?

python oop

답변 1

2

윤상석

안녕하세요!

답변이 늦었네요 ㅠ_ㅠ

먼저 인스턴스 메서드가 아닌 classmethod와 staticmethod를 사용하는 이유는 인스턴스가 공통적으로 사용하는 변수를 제어할 경우 사용됩니다. https://www.inflearn.com/questions/308912 확인해주세요!

추가적으로 classmethod와 staticmethod의 큰 차이점은 상속을 할 때입니다!

classmethod의 cls 인자는 어떤 부모 클래스를 상속 받든 현재 클래스가 cls에 들어가는 반면 staticmethod는 어떤 자식 클래스에서 호출을 하든 처음 정의된 부모 클래스에 해당하는 영역의 값을 사용합니다!

(상속에 대한 차이점은 후에 강의하는 상속을 보시고 다시 답글을 보시면 좋을 것 같습니다! 그럼에도 이해가 되지 않으시면 자세한 예시를 들어 새로 보충 강의를 찍겠습니다!)

즐거운 추석 보내세요 :)

보너스 챕터 마지막 강의 녹화 품질이 문제가 있습니다ㅠㅠ

0

119

1

린터 설치문의

0

371

2

데이터분석에서의 가상환경

0

401

0

print(Robot.how_many()) 하면 None이 뜨는 이유

2

328

2

타입파이썬 문의

1

340

1

프레임워크 질문

1

238

1

문수미님과 같은 내용입니다

1

316

1

클래스 상속 순서? 질문

1

386

2

pip과pip3의 차이

1

2748

1

메서드 리턴 값이 print일 때 print를 찍으면 None

1

250

1

변수의 참조에 대해서 질문입니다.

1

247

1

질문입니다..

1

208

1

pyright 를 이용한 클래스 재정의 코드 실행 문제점 질문 드립니다.

1

455

1

which pyhon이 왜 안될까요..?

1

440

1

pyright 에러나서 질문드립니다.

1

399

1

클래스 변수 관련 질문입니다.

1

303

1

데코레이터 관련 질문

1

229

1

venv 로 만든 가상환경은 파이썬 버젼을 변경하기가 어려운 것 같습니다.

1

1121

1

Final로 타이핑한 변수에 list를 넣는다면

1

228

1

생성자에서 자기 자신 타이핑 하는 경우

1

220

1

f"{객체}" 출력값에서의 숫자값과 id(객체)에서의 숫자값의 차이가 무엇인가요??

1

337

1

타입힌트 실무에서 자주쓰이나요?

2

487

1

스태틱메소드와 클래스메소드

3

266

1

인스턴스와 데이터

2

238

1