함수 또한 객체라는 것과 관련
197
작성한 질문수 4
(Code 1)
def add1(a, b):
return a + b
print(add1(2, 3))
(Code 2)
class Cal:
def __init__(self):
pass
def __call__(self, a, b):
return (a + b)
add1 = Cal()
print(add1(2, 3))
(Code 1)을 실행할 때, 파이썬 내부에서는 (Code 2)가 발생하고 있다고 이해해도 될까요?
답변 2
2
네 정확하게 이해하셨습니다. 👍
0
자꾸 여쭤봐서 죄송합니다. 의문이 물밀듯이 생겨나서요. ㅠㅠ
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를 둘 다 가능하게 할 것인지
를 정할 때, 어떤 점들을 고려하는가요?
0
질문. 내가 transpose를 해주는 패키지를 만든다고 할 때, 그 기능을
c처럼 매직메서드(init 혹은 call?)로 구현할 것인지
b처럼 non 매직 메서드로 구현할 것인지
아니면 b와 c를 둘 다 가능하게 할 것인지
를 정할 때, 어떤 점들을 고려하는가요?
우선, b의 경우 transpose는 인스턴스 메서드이고 c의 경우 transpose는 클래스 메서드입니다.
numpy를 만든 개발 팀 입장에서는 방법에 차이이기 때문에 단순히 개발자의 편의를 위해 둘 다 접근해서 사용할 수 있도록 제공해준 것입니다.
결국 개발자가 어떤 방식으로 사용하는 것이 가독성이 있을 지 선택하는 것이죠.
++ 머신러닝에서 코드를 돌릴 때 두 가지 방법 모두 성능상 차이가 없습니다. 가독성을 위해 어떤 방식으로 코드를 작성하면 좋을 지 생각하시면 될 것 같습니다.
보너스 챕터 마지막 강의 녹화 품질이 문제가 있습니다ㅠㅠ
0
119
1
린터 설치문의
0
371
2
데이터분석에서의 가상환경
0
401
0
print(Robot.how_many()) 하면 None이 뜨는 이유
2
328
2
타입파이썬 문의
1
342
1
프레임워크 질문
1
239
1
문수미님과 같은 내용입니다
1
316
1
클래스 상속 순서? 질문
1
387
2
pip과pip3의 차이
1
2749
1
메서드 리턴 값이 print일 때 print를 찍으면 None
1
250
1
변수의 참조에 대해서 질문입니다.
1
248
1
질문입니다..
1
209
1
pyright 를 이용한 클래스 재정의 코드 실행 문제점 질문 드립니다.
1
456
1
which pyhon이 왜 안될까요..?
1
440
1
pyright 에러나서 질문드립니다.
1
399
1
클래스 변수 관련 질문입니다.
1
303
1
데코레이터 관련 질문
1
230
1
venv 로 만든 가상환경은 파이썬 버젼을 변경하기가 어려운 것 같습니다.
1
1121
1
Final로 타이핑한 변수에 list를 넣는다면
1
228
1
생성자에서 자기 자신 타이핑 하는 경우
1
220
1
f"{객체}" 출력값에서의 숫자값과 id(객체)에서의 숫자값의 차이가 무엇인가요??
1
337
1
타입힌트 실무에서 자주쓰이나요?
2
487
1
스태틱메소드와 클래스메소드
3
267
1
인스턴스와 데이터
2
238
1





