인프런 커뮤니티 질문&답변
함수 또한 객체라는 것과 관련
작성
·
191
답변 2
2
윤상석
지식공유자
질문. 내가 transpose를 해주는 패키지를 만든다고 할 때, 그 기능을
c처럼 매직메서드(init 혹은 call?)로 구현할 것인지
b처럼 non 매직 메서드로 구현할 것인지
아니면 b와 c를 둘 다 가능하게 할 것인지
를 정할 때, 어떤 점들을 고려하는가요?
우선, b의 경우 transpose는 인스턴스 메서드이고 c의 경우 transpose는 클래스 메서드입니다.
numpy를 만든 개발 팀 입장에서는 방법에 차이이기 때문에 단순히 개발자의 편의를 위해 둘 다 접근해서 사용할 수 있도록 제공해준 것입니다.
결국 개발자가 어떤 방식으로 사용하는 것이 가독성이 있을 지 선택하는 것이죠.
++ 머신러닝에서 코드를 돌릴 때 두 가지 방법 모두 성능상 차이가 없습니다. 가독성을 위해 어떤 방식으로 코드를 작성하면 좋을 지 생각하시면 될 것 같습니다.






자꾸 여쭤봐서 죄송합니다. 의문이 물밀듯이 생겨나서요. ㅠㅠ
import numpy as np
a = np.arange(9)
x = a.reshape(3, 3)
b = x.transpose()와 c = np.transpose(x) 모두 외관상 동일한 결과물을 반환하되, id(b) != id(c)인데요
질문. 내가 transpose를 해주는 패키지를 만든다고 할 때, 그 기능을
c처럼 매직메서드(init 혹은 call?)로 구현할 것인지
b처럼 non 매직 메서드로 구현할 것인지
아니면 b와 c를 둘 다 가능하게 할 것인지
를 정할 때, 어떤 점들을 고려하는가요?