SR's Dev-Log

[Python] 타입(Type): 덕 타이핑(Duck Typing), 이름 기반 타이핑(Nominal Typing)

TL;DR 📌 파이썬에서 타입은 “지원되는 연산의 집합”에 의해 정의된다. 덕 타이핑(duck typing)이란, 파이썬이 런타임에서 실행될 때에 해당한다. 객체의 선언된 타입은 전혀 상관이 없으며, 실제로 그 객체가 어떤 연산을 지원하는지만 중요하다. 이름 기반 타이핑(nominal typing)이란, 파이썬에 타입 힌트를 추가하고 m...

[Python] 가변성(Mutability)과 불변성(Immutability): 튜플은 항상 불변일까?

흔히 파이썬에서 “tuple은 불변이다” 라고 알려져 있다. 그런데, 과연 파이썬의 tuple은 어떠한 상황에서든 불변일까? 그리고 tuple 내에 변경 가능하다고 알려진 list가 들어있다면, 그 list는 변경 불가능할까? TL;DR 📌 변경이 불가(immutable)하다고 알려진 tuple의 불변성은 가지고 있는 “참조” 자체에 대...

[Python] First-Class Object, Higher-Order Function, 그리고 함수형 프로그래밍

TL;DR 📌 파이썬에서 모든 함수는 first-class object이다. 따라서 함수를 어떤 변수에 할당할 수 있으며, 그 변수로 호출할 수 있다. 그리고 함수를 다른 함수에 인자로 전달할 수도 있고, 어떤 함수의 결과로서 반환할 수도 있다. higher-order function이란 함수를 인자로 받거나 함수를 반환하는 함수(ex. m...