본문 바로가기

python2

django exists() 코드를 작성하다가 보면 "지금 내가 짠 코드가 효율적일까?" 에 대한 고민을 하게 됩니다. Django는 기본적으로 ORM(Object-Relational Mapping)을 사용하는 framework입니다. 그래서 자신이 작성한 코드가 어떠한 query로 바뀌어 database에서 실행되는지 생각을 해야 더 좋은 코드를 짤 수 있습니다. 두개의 코드가 있습니다. if some_queryset.count() > 0: # some_queryset은 QuerySet에 대응합니다. ... if some_queryset.exists(): ... python의 함수 len()이 시간 복잡도가 O(1)이라는 것을 생각해 보면 이 둘의 시간 복잡도는 비슷해 보입니다. 하지만 공식 문서를 읽어보면 "참고: 적어도 하나의.. 2023. 8. 7.
[python] __init__ 파이썬을 공부한지 1년이 되가는데. 이제야 __init__의 용도를 알게되어서 부끄럽지만 부끄럽다고 정리를 안하면 앞으로도 안할것을 알기 때문에 정리를 합니다. 자바로 치면 생성자와 비슷한 역할을 합니다. 목차 클래스란 __init__란 self란 클래스란 클래스란 일종의 모형입니다. 이 모형에서 속성과 메서드를 담을 수 있습니다. 예를 들어 class MyClass: x = 5 위와 같은 클래스를 만들었다면 같은 모형을 계속 복사 할 수 있습니다. p1 = MyClass() p2 = MyClass() print(p1.x) # 5가 출력 print(p2.x) # 똑같이 5가 출력 아쉬운 점이 있다면 항상 x는 5라는 것입니다. 저는 x를 3 혹은 10으로 바꾸고 싶은데 말이죠. 이때 사용하는게 __ini.. 2023. 8. 5.