본문 바로가기

CS31

[Python] 함수 인트로스펙션(Function Introspection)과 매개변수(Function Parameter), 애너테이션(Function Annotation) 함수 인트로스펙션 함수 객체는 __doc__이외에도 많은 속성을 가지고 있다. 일반적인 객체에는 없지만 함수에는 있는 고유한 속성을 알아보자. 집합으로 변환한 뒤, 차집합을 구하는 방식으로 객체에는 없지만 함수에는 있는 고유한 속성을 나타내보았다. >>> class C: pass >>> obj = C() >>> def func(): pass >>> sorted(set(dir(func)) - set(dir(obj))) ['__annotations__', '__call__', '__closure__', '__code__', '__defaults__', '__get__', '__globals__', '_.. 2022. 11. 30.
[Python] Callable이란? Callable 객체 호출 연산자인 ()는 사용자 정의 함수 이외의 다른 객체에도 사용할 수 있다. 호출할 수 있는 객체(Callable)인지 알아보려면 callable()내장 함수를 사용한다. 파이썬에는 다음과 같은 callable이 있다. 사용자 정의 함수 def 문이나 람다 표현식으로 생성 내장 함수 len()이나 time.strftime()처럼 C언어로 구현된 함수 내장 메서드 dict.get()처럼 C언어로 구현된 메서드 메서드 클래스 본체에 정의된 함수 클래스 호출될 때 클래스는 자신의 __new__()메서드를 실행해서 객체를 생성하고, __init__()으로 초기화한 후, 최정적으로 호출자에 객체를 반환한다. 파이썬에서는 new 연산자가 없기 때문에 클래스를 호출하는 것은 함수를 호출하는것과.. 2022. 11. 25.
[Python] 튜플(Tuple)과 시퀀스의 복합 할당 튜플(tuple) 튜플은 불변 리스트로 사용할 수도 있지만, 필드명이 없는 레코드로 사용할 수도 있다. 레코드로서의 튜플 튜플은 레코드를 담고 있다. 튜플의 각 항목은 레코드의 필드 하나를 의미하며, 항목의 위치가 의미를 결정한다. 아래는 튜플을 레코드로 사용하는 예시 코드이다. coordinates = (33.9425, -118.408056) city, year, pop, chg, area = ('Tokyo', 2003, 32450, 0.66, 8014) traveler_ids = [("USA", "31195855"), ('BRA', 'CE342567'), ("ESP", "XDA205856")] for passport in sorted(traveler_ids): print("%s/%s" % passpo.. 2022. 10. 23.
[Python] Python의 내장 시퀀스와 list comp, genexp sequence 내장 시퀀스 파이썬 표준 라이브러리는 C로 구현된 아래의 시퀀스형을 제공한다 컨네이너 시퀀스 서로 다른 자료형의 항목들을 담을 수 있다. 객체에 대한 참조를 담고 있으며, 객체는 어떠한 자료형도 담을 수 있다. list, tuple, collections.deque 균일 시퀀스 단 하나의 자료형만 담을 수 있다. 객체에 대한 참조 대신 자신의 메모리 공간에 각 항목의 값을 직접 담는다. 컨테이너 시퀀스에 비해 메모리를 더 적게 사용한다. str.bytes, bytearray, memoryview, array.array 시퀀스형은 가변성에 따라서 분류할 수도 있다 가변 시퀀스 list, bytearray, array.array, collections.deque, memoryview 불변 시.. 2022. 10. 23.
[JavaScript] JavaScript의 객체 object(객체) 자바스크립트는 객체(object)기반의 언어이며, 자바스크립트를 구성하는 거의 모든 것이 객체이다. 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식)은 모두 객체이다. 원시 타입은 단 하나의 값만 나타내지만, 객체 타임(object type)은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조이다. 또한, 원시 타입의 값, 원시 값은 변경 불가능한 값(immutable value)이지만, 객체는 변경 가능한 값(mutable value)이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키(key)와 값(value)으로 구성된다. 아래의 예시를 보자. var person = { name : "Loe", // 프로퍼티(프로퍼티 키.. 2022. 10. 23.