파이썬

추상화

reasonable 2021. 6. 30. 15:52

복잡한 디테일을 숨기고 주요 기능에만 신경쓰게 해주는 기술을 추상화라고 합니다.

추상화는 다음과 같은 항목들로 나눠집니다.

 

(1) 변수

x = y 오른쪽에 있는 변수를 왼쪽에 넣는다는 의미입니다. 이러한 상황속에서 등식 (=)을 지정연산자라 부릅니다.

 

ex) x = 5

x = x - 2

 

라는 코드가 짜여져 있을때 x=5가 x-2에 대입이되어서 3이라는 결과가 다시 x로 들어가게되는 순서라고 보시면 되겠네요. x=5 >> x=3이 됩니다.

 

(2) 함수 실행

함수를 실행하는것을 다른말로 함수를 호출한다고도 표현합니다. 저번에 살펴보았던 def 함수를 이용하면 미리 짜놨던 코드들을 함수를 실행해주면 바로 출력이 되게끔 하는 법을 배웠는데요.

 

ex) def good():

print("중간")

print("처음")

good()

print("끝")

 

을 하면 차례대로 처음 중간 끝 이 출력이 됩니다.

다시말해서 선언하여준 함수 전후에 다른 코드들이 있다면 차례차례 순서대로 실행된다는 의미입니다!

 

(3) return문의 함수 종료

return은 정보를 돌려서 값을 되돌려주는 기능 외에도 함수를 종료시키는 기능도 같이 있습니다. 빠른 예시 살펴볼까요?

 

ex) def square(x):

          print("start")

          return 5x

          print("over")

print(square(1))

print("really done")

 

을 하게되면 start 5 really done 은 차례대로 출력이 되지만 over은 출력되지 않습니다.

return까지만 함수가 출력되고 그 뒤에 붙어있는 함수는 def가 끝나지 않는다면 다 실행되지 않기 때문입니다.

"over" 이부분은 결국 아무런 의미없는 코드게 되겠네요? 이를 데드코드라고 부릅니다.

 

(4) return 과 print는 어떻게 작동될까?

 

ex)

def one(x):

     print(x*x)

def two(x):

     return x*x

 

라는 식이 주어져 있다고 생각해봅시다. one 함수는 print가, two 함수는 return이 담겨져 있죠?

하나하나 대입해보면서 경우를 생각해볼게요!

 

  • one(5)를 하면 25라는 값이 출력이 됩니다.
  •  

5*5 = 25라는 값이 print되어 나오기 때문입니다.

 

  • two(5)를 하면 아무런 값도 나오지 않습니다.
  •  

물론 return 연산으로 5*5 는 25라는 값이 연산됩니다만, print 하라는 내용이 없기때문에

빈 공간만 남죠.

 

  • print(two(5)) 하면 25라는 값이 출력이 됩니다.

two(5)를 하면 25라는 값은 연산이 되나 출력이 되지않았습니다. 이 떄 print를 붙여주면 당연히 25가 출력되겠네요?

 

  • 이부분은 이해하기 어려울수도 있습니다. print(one(5)) 을 하면 25와 none이 출력됩니다.

 

one(5)를 계산하면 25가 나오죠? 그런데 사실 초반에 말씀을 드리지 않은 내용이 있습니다. none이라는 값도 계산된다는 내용입니다.

 

one()함수에는 return 값이 저장되어 있지 않습니다. two()함수에 있지요. 그래서 one() 함수를 계산하면 상수값과 none이 나오지만 one()에서는 return에 대한 식이 없기에none이 출력 되진 않고 존재만 하는걸로 간주합니다.

 

따라서 print(one(5))를 하면 25의 값과 더불어 따로 선언되지 않았던 none값마저 출력하기에 none 도 같이 출력됩니다.

'파이썬' 카테고리의 다른 글

제어문  (0) 2021.07.04
추상화(2)  (0) 2021.07.02
함수와 파라미터  (0) 2021.06.28
파이썬의 자료형  (0) 2021.06.25
파이썬의 기본개념(print,코멘트,자료형,추상화)  (0) 2021.06.24