Python 특징

박효상·2022년 12월 20일
0

Python

목록 보기
1/2
post-thumbnail

Python

  • 인터프리터 언어
    • 위에서부터 아래로 한줄씩 코드를 해석하는 방식의 언어
    • 컴파일 과정이 필요 없어 코드 수정 및 반영이 용이
    • 에러가 있는 코드 직전까지 에러가 없다면 해당 코드만큼 정상 실행
    • 단 한번에 에러를 확인할 수 없다
    • 매번 코드 해석하는 과정이 필요하여 한번만 기계어로 변환하면 계속 실행이 가능한 컴파일 언어보다 실행속도가 느리다
  • 동적 타입
    • 변수 및 함수 선언시 타입 정의가 필요하지 않다
    • 타입 신경쓸 필요가 없어 개발 속도가 빨라진다
    • 의도하지 않은 결과가 문제없이 출력될 가능성 높다
    • 보완책
      • Type Hint
        • 동적타입이 갖는 불안정성 개선차 Python 3.5에선 함수 매개변수와 리턴값, Python 3.6에선 변수 타입 지정을 위한 Type Hint 기능 추가
        • ex) name: string = '뽀로로'
  • 객체 지향 프로그래밍 언어(OOP)
    • 현실세계에 존재하는 사물 및 추상적인 대상을 속성(attribute)과 행위(method)의 요소를 지니는 객체로 정의하고 객체와 객체간의 관계를 지어 현실 세계 문제를 해결하는 방식의 프로그래밍 기법.
    • Python에서는 Class 기능을 제공하며, Class 내부 init()을 통해 객체 초기화 가능
  • 문법
    • 다른 언어는 중괄호 {} 를 통해 함수, 조건문, for loop, 클래스를 구분하는 방식으로 영역을 지정하지만, Python은 들여쓰기와 콜론으로 영역을 지정
    • Python은 상대적으로 마치 글을 작성하고 읽는 듯한 문법으로 사람이 이해하기 쉬운 가독성 높은 언어
    • ex) is_genius = True if test_score > 90 else False
  • 다양한 프레임워크, 라이브러리
    • 웹개발 : Django, DRF, Flask, Fast API
    • 머신러닝 : Tensorflow, Numpy, Pandas
    • 데이터 크롤링 : Beautifulsoup

Pass by assignment

  • 파이썬에서 함수에 인자로 넘기는 값의 종류에 따라 전달 방식이 달라지는 특징을 의미
  • 일반적으로 대부분 언어에선 pass by value로 함수 내부에 값 변동이 있어도 밖에 영향을 주지 않게 하는 안전한 방식을 채택
  • 파이썬에서 불변형 자료인 int, string, float 등을 인자로 넘기면 해당 값을 복사하여 활용하기에 함수 내부에 값변동이 있어도 밖에 영향을 주지 않는 pass by value 형태를 띰
  • 파이썬에서 가변형 자료인 list, dict, set 등을 인자로 넘기면 값 복사없이 주소가 가리키는 값을 직접 참조하여 함수 내부에 값 변동이 있을시 밖에도 영향을 주는 pass by reference 형태를 띰
  • 따라서 Python에선 함수 실행을 통한 값 변동을 막으려면 가변형 자료형인 값을 인자로 넘길 때 주의 필요
profile
집념의 백엔드 개발자

0개의 댓글