ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 67 - (파이썬) 가독성과 유지보수성
    study with Q - 파이썬 2024. 7. 15. 19:25

    # 현대적 관점의 개발은 함수함수함수함수함수함수다. 

    : 가독성, 유지보수적의 측면에서 이런 것까지? 하는 부분까지 함수로 만드는 것이 좋다. 

     

    eg) 원주율이 주어졌을 때, 원의 둘레와 넓이를 구하는 방법을 구하는 프로그램을 만든다고 할 때, 

     

    🧐 요래 작성하면 되는 거 아닌가?

    #숫자 입력
    number = input("Enter a number: ")
    radius = float(number)
    
    #둘레와 넓이
    print(2*3.14*radius)
    print(3.14*radius*radius)

     

    주석은 코드를 수정하면서 바로 같이 수정되지 않으므로 누락( → 휴먼 에러 발생)의 가능성이 있다.

    그래서 아예 함수로 요래요래 변환해버림

    def num_input():
      number = input("Enter a number: ")
      return float(number)
    
    def circum(radius):
      return 2*3.14*radius
    
    def area(radius):
      return 3.14*radius*radius
    
    variable = num_input()
    print(circum(variable))
    print(area(variable))

     

    한 줄자리 코드는 컴파일 단계에서 인라인코드로 삽입해버리기 때문에 함수 스택 쌓느라 느려지지 않을까 하는 생각은 안해도 됨...

     

    : 가독성이 높아지면 유지보수도 쉬워진다.

    그렇기 때문에 위의 코드를 더 쉽게 수정할 수 있도록 코드를 짠다고 하면 원주율까지도 변수로 때려넣으면 된다. 이렇게.

     

    pi = 3.141592
    
    def num_input():
      number = input("Enter a number: ")
      return float(number)
    
    def circum(radius):
      return 2*pi*radius
    
    def area(radius):
      return pi*radius*radius
    
    variable = num_input()
    print(circum(variable))
    print(area(variable))

     

    eg) 간단한 HTML 태그를 작성하는 코드를 만들어보자

    print("<p>{}</p>".format("안녕하십니까."))
    print("<p>{}</p>".format("이것은 간단한 HTML 태그의 예시입니다."))
    
    #함수를 쓰지 않은 코드에서 <P>를 <p class = content-iine>으로 바꿔달라고 한다면
    print("<p class = content-iine>{}</p>".format("안녕하십니까."))
    print("<p class = content-iine>{}</p>".format("이것은 간단한 HTML 태그의 예시입니다."))
    
    #하나하나 다 찾아가며 바꿔야한다.

     

    그렇지만 미리 함수로 받아서 출력하는 문자열을 썼다면

    def p(p_str):
      return "<p>{}</p>".format(p_str)
    
    print(p("안녕하십니까"))
    print(p("이것은 간단한 HTML 태그의 예시입니다."))
    
    
    # <P>를 <p class = content-iine>으로 바꿔달라고 할 때도 함수 내부만 바꾸면 된다.
    def p(p_str):
      return "<p class = content-iine>{}</p>".format(p_str)
    
    print(p("안녕하십니까"))
    print(p("이것은 간단한 HTML 태그의 예시입니다."))

     

    🧐 예전에 디수 때 템플릿을 이용했던 것이 그런 이유이기도 했지 오호오호.

Designed by Tistory.