ASH84

Software Engineer/Developer, co-founder of Payhere. Ex-Banksalad. Intereseted in iteroperability, bootstrap company, writting.

python static method vs. class method

created:2022-08-21
updated:2022-08-21
edit

사내에서 파이썬 코드를 짜다보면 static method와 class method를 혼용해서 사용하는 경우가 개인별로 있었는데 이 부분에 대해서 개인적으로 조사를 해서 전달할 기회가 있었다. 파이썬 책도 많이 봤고, 공식 레퍼런스도 봤지만 대부분 사용법에 대해서 애기가 대체로 있고, 언제 두개를 구분해서 사용해야하는 지에 대해서는 나와있지 않아서 몇개의 레퍼런스를 정리해봤다.

파이썬 코딩의 기술, 108p

파이썬에는 클래스별로 생성자를 한 개만 만들수 있다.( __init__) 클래스에 필요한 다른 생성자를 정의하려면 @classmethod를 사용하자. 구체(concrete) 서브 클래스를 만들고 연결하는 범용적인 방법을 제공하려면 클래스메소드의 다형성을 이용하자.

Fluent Python, 328p

class method는 대안 생성자를 구현하기 위해서 주로 사용된다. 본질적으로 static method는 클래스 본체 안에 정의된 평범한 함수일 뿐이다?

The definitive guide on how to use static, class or abstract methods in Python

static method

class method

🧐 개인적인 생각

ps) 이번기회에 스스로 몰랐던 것을 알게 되어서 너무 좋다. 알고서 잘 짜는건 어렵다.


#Class  #dev  #Python  #static method  #class method