본문 바로가기
반응형

파이썬/기초문법19

Python 인터프리터 vs 컴파일러 / Is Python interpreted or compiled? Yes 번역 Python이 인터프리터 언어냐 컴파일 언어냐는 질문은 자주 등장하지만 이에 대해 쉽게 답을 내릴 수 없습니다. 세상은 생각보다 복잡하기 때문입니다. 컴파일(compile) 한다는 것은 우리가 작성한 소스코드를 컴퓨터가 실제로 실행할 수 있는 binary 코드로 바꾼다는 의미입니다. (CPU 명령어) 예를 들어 C언어로 만든 코드를 실행할 때는 컴파일 작업이 필요합니다. 반대로 인터프리트(interpreted)의 의미는 우리가 만든 소스코드를 한줄 한줄 해석해 실행하는 것을 말합니다. 우리가 흔히 프로그래밍 언어를 인터프리터/컴파일러 두가지로 구분하려고 하지만 단순히 그렇게 나누기에는 너무 제한적입니다. 보통 컴파일한다는 것은 인간에게 친숙한 high level language 소스를 기계어로 바꿔준다고.. 2020. 4. 20.
Python if __name__ == '__main__': 에 대한 이해 / Python __name__ Python 관련 책이나 코드를 보면 이런 코드를 종종 볼 수 있습니다. if __name__ == '__main__': 이번 포스팅에서는 이 코드의 의미가 무엇이고 왜 있어야 하는지 알아 보겠습니다. 간단하게 코드로 예를 들어 하나씩 정리해보면 먼저 Python 모듈을 실행하면 아무것도 안해줘도 __name__에 __main__이라는 값이 들어갑니다. pizza.py print('pizza1') print('__name__ ', __name__) print('pizza2') 실행하면 다음과 같은 결과가 나옵니다. pizza1 __name__ __main__ pizza2 그럼 다른 모듈에서 import를 통해 pizza.py를 가져오면 __name__에는 뭐가 들어갈까요? 이번에는 chief라는 모듈을 .. 2020. 4. 18.
Python namespace에 대한 이해 / Python 네임스페이스 Python namespace란 무엇이고 왜 필요할까? 1. Python name? Python에는 모든 것이 객체로 표현되지만 이 객체들 데이터 타입으로 나눠보면 문자, 숫자, 불리언(Boolean), 리스트 등이 있습니다. 이 모든 것들에 대해 이름을 지어줄 수 있습니다. 예를 들면 아래처럼 문자, 숫자, 불리언, 리스트를 각각 my_string, my_number, my_boolean, my_list처럼 명명할 수 있습니다. my_string = 'spam and eggs' my_number = 42 my_boolean = True my_list = ['spam', 'eggs'] 마찬가지로 지난글(2020/04/09 - [Python/Basic] - Python First Class Function.. 2020. 4. 15.
Python First Class Function 일급 함수 Python에서 함수는 일급 객체입니다. 함수가 일급객체로 취급 받는다는 의미는 다음과 같습니다. 1. 변수에 할당할 수 있다 2. 매개변수로 전달할 수 있다. 3. 반환값으로 사용할 수 있다. 하나씩 살펴보겠습니다. 1. 함수를 다른 변수에 할당할 수 있다. 함수를 정의하면 다음과 같이 사용합니다. def say_hello(name): print('Hi ' + name) say_hello('Python3') 그런데 say_hello는 함수이자 객체이므로 다른 변수에 할당하여 사용할 수 있습니다. def say_hello(name): print('Hi ' + name) say_something = say_hello say_something('Python3') 2. 함수를 매개변수로써 사용할 수 있다. d.. 2020. 4. 9.
Python Mutable vs Immutable / Mutable / Immutable Python은 모든 것을 객체로 표현합니다. Python에서 표현할 수 있는 객체들은 Mutable / Immutable 하냐로 구분할 수 있습니다. 여기서, Mutable은 '변경 가능한' 이라는 의미이고 Immutable '변경 가능하지 않은' 이라는 의미입니다. Python 객체가 변경 가능하냐 안하냐는 무슨 의미일까요? 간단하게 객체의 값을 바꿀 수 있느냐 없느냐라고 생각해보겠습니다. 예를 들어 str 객체는 실제로 Immutable (변경가능하지 않은) 객체입니다. 한번 할당하면 값을 바꿀 수가 없습니다. 조회는 가능합니다. str_test = "test" print(str_test[0]) # t str은 Immutable 하다고 했으니 바꿀 수가 없습니다. 변경을 시도하면 에러가 발생합니다. .. 2020. 3. 16.
반응형