본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

인공지능/PYTHON

TypeError: D.spam() missing 1 required positional argument: 'y' : feat. 정적 메소드(Static Method)와 인스턴스 메소드(Instance Method)

파이썬에서 @staticmethod에 self를 출력하려고 하면 타입에러가 뜬다 .

 File "g:\study\sk_playdata\study_ai\python_workspace\day5_python_oop\class_oop.py", line 57, in <module>
    d.spam(3, 4)
    ~~~~~~^^^^^^
TypeError: D.spam() missing 1 required positional argument: 'y'

 

 

정적 메소드(Static Method)와 인스턴스 메소드(Instance Method)


정적메소드는 클래스라는 설계도에 딱 붙어있는 메소드이다. 
클래스가 메모리에 올라갈때 딱 한번 정적 메모리 영역에 자리를 잡는데 

이때 개별 인스턴스의 상태를 알 필요없기 때문에 self가 필요없다.

인스턴스는 self가 필수인 이유는 자기 자신으 데이터를 읽거나 수정해야하기 때문이다.


공중전화나 계산기에는 정적메소드, 핸드폰으로 전화걸기는 인스턴스 메서드를 사용한다고 이해해보자.


정적메서드는 인스턴스마다 결과가 달라지지않는 단순 계산, 날짜변환, 설정값 확인 같은 기능을 만들때 좋다 .

객체를 생성하지 않고도 쓸수있어 가볍고 클래스와 관련은 있지만 개별 데이터는 안쓰는 함수들을 클래스 안에 예쁘게 묶어두고싶을때사용할 수 있다. 

 

 

 

https://standout.tistory.com/104

 

JAVA 예약어 static

static 예약어 데이터영역 메모리에 생성되어 프로그램이 종료될때까지 수명이 유지된다. 클래스 이름으로 바로, 직접 호출하여 프로그램이 종료될때까지 값을 여기저기 공유하여 저장할 수 있

standout.tistory.com

 

https://standout.tistory.com/189

 

여러 인스턴스에서 공유하다, static

static 여러 인스턴스에서 공유해 사용 getter setter없이 이용이 가능하며, 값을 모두 공유해서 쓰기때문에 함께 만들어갈 수 있는 존재가 된다. 예로, 아래코드에서 count 값은 객체를 생성할 때마다

standout.tistory.com

 

https://standout.tistory.com/246

 

Static/Dynamic pages, 정적인지 동적인지

Static pages image, html, css, javascript 파일 컴퓨터에 저장되어 있는 파일 정적인 컨텐츠, 동일한내용이 모든 사용자에게 보여짐 https://ko.wikipedia.org/wiki/%EC%A0%95%EC%A0%81_%EC%9B%B9_%ED%8E%98%EC%9D%B4%EC%A7%80 정적

standout.tistory.com