property밑에 정의된함수를 예를들면 def asd():
에서 print(asd())라고 쓰면 typeError ----- object is not callable. 이라고뜹니다.print(asd)라고 쓰면 함수반환값이 저장된 위치만 알려주고요. 찾아보니까 변수처럼 취급한다는말이 있길래 어떻게되는지 헷갈리네여
parameter 가있는 함수도 ()를 쓰면 안되는지요?
에서 print(asd())라고 쓰면 typeError ----- object is not callable. 이라고뜹니다.print(asd)라고 쓰면 함수반환값이 저장된 위치만 알려주고요. 찾아보니까 변수처럼 취급한다는말이 있길래 어떻게되는지 헷갈리네여
parameter 가있는 함수도 ()를 쓰면 안되는지요?
asd()는 asd 함수를 호출해서 나오는 리턴값, asd는 함수 객체, @deco 밑에 asd를 정의하면 deco(asd)의 리턴값이 asd가 됨
결국 print(asd()) 했을 때 일어나는 일은 print(deco(original_asd)())
그렇다면 저런 에러메시지가 나오는 이유는 deco(asd)의 리턴값이 함수가 아니라는 거겠지 deco를 어떻게 정의했는지 몰라도 최소한 callable한 객체를 리턴하지 않는다는 에러임
만약 @property가 아무 이름이나 쓴게 아니라 있는 그대로 property를 쓴거라면, property는 프로퍼티 객체를 반환하는 빌트인 함수임.. 당연히 not callable