2024/09 4

Python mutable 변경 가능, immutable 변경 불가능

파이썬은 다른 언어들과는 다르게 모든 것들이 객체이다. 이 객체들은 python memory manager에서 관리된다.이 객체들의 주소는 id 라는 함수를 통해서 알 수 있다.파이썬엔 mutable 변경 가능, immutable 변경 불가능 객체가 있다.immutableint, floot, bool, str, tuplemutablelist, set, dicimmutable>>> a = 100>>> b = 100>>> c = 100>>> print(id(a), id(b), id(c))439093744043909374404390937440위 코드는 각각 다른 변수들에 100이라는 integer 값을 할당해 주더라도 객체의 주소는 다 같은 걸 볼 수 있다.여기서 python memory manager은 10..

python 2024.09.23

DRF Serializer

내가 생각하는 DRF의 가장 큰 장점은 Serializer이라고 생각한다.Serializer는 json, python, xml 객체간의 직렬화를 쉽게 해주며 데이터를 검증하며 이걸 다시 다른 형태로 역직렬화 시킬 수 있다. 1. Serializer 선언간단한 Board 클래스 하나를 선언해준다.>>> class Board:... def __init__(self, title, content):... self.title = title... self.content = content...>>> board = Board("Hello", "World!") 시리얼라이저저를 사용하는 방법은 모델을 선언하는 방법과 비슷하다.>>> class BoardSerializer(..

django 2024.09.18

Python 잘 쓰는법: 리스트, 딕셔너리

1. 시퀀스 슬라이싱파이썬엔 시퀀스라는 자료형이 있다.시퀀스는 데이터를 순서대로 담는 자료형이다.문자열: 'Python'파이썬이라는 문자열도 Char의 시퀀스이다.배열: ['a', 'b', 'c']튜플: ('a', 'b', 'c')파이썬엔 이러한 시퀀스를 슬라이싱 할 수 있는 많은 방법이 있다.>>> a = ['a', 'b', 'c', 'd']>>> print(a)['a', 'b', 'c', 'd']>>> print(a[1:5])['b', 'c', 'd']기본적으로 list[시작:끝]으로 쉽게 할 수 있다. 시작 인덱스부터 출력되며 마지막 인덱스는 포함하지 않고 리턴된다.>>> assert a[:1] == a[0:1]>>> assert a[1:] == a[1:len(a)]맨 앞부터 슬라이싱하는경우에는 0..

python 2024.09.09

Python 다중 상속, super()

1. 다중 상속다중상속은 하나의 클래스가 2개 이상의 클래스를 상속받아 자식 클래스를 작성하는것을 말한다.클래스를 생성할때 ()에 클래스 이름을 넣어서 다중상속 클래스를 만든다.>>> class A:... def hello():... print('hello')...>>> class B:... def bye():... print('bye')...>>> class C(A, B):... pass...>>>>>> C.hello()hello>>> C.bye()bye클래스 C는 클래스 A, B의 메서드인 hello, bye 메서드 모두를 갖고 호출할 수 있다.이걸 그림을 간단하게 표현하면 이렇게 볼 수 있다. 2. 다이아몬드 상속>>> class A:..

python 2024.09.02