당신은 심지어 리팩토링합니까? 003

코드 리팩토링은 중요하지만 종종 간과됩니다. 기존 코드의 디자인과 성능을 향상시킬 수 있습니다.

아래 Python 코드는 완료하는 데 약 14초가 걸립니다. getData 함수를 리팩터링하여 10초 이내에 실행되도록 합니다. 댓글에 답을 게시하세요.

import time

def getData():
  arr = []
  for i in range(1000*1000*50):
    arr.append(i)
  lo, hi = 0, 0
  for x in arr:
    if x < lo:
      lo = x
    if x > hi:
      hi = x
  print(lo, hi)
  return arr

def timed(func):
  def run():
    Tstart = time.time()
    func()  
    Tend = time.time()
    Tdt = round(Tend - Tstart, 2)
    print(Tdt, 'seconds')
  return run

@timed
def main():
  data = getData()
  print('len:', len(data), 'sum:', sum(data))

main()

좋은 웹페이지 즐겨찾기