인스턴스를 복사할 때는 같은 주소값을 바로보는 얇은 복사 다른 주소값을 바로보는 서로 영향을 받지 않는 깊은 복사가 있다. 이것은 immutable 객체에서는 얇은 복사가 별로 신경 쓸 필요가 없고 mutable 객체에서만 얇은 복사되는것을 조심하면 된다. 어차피 immutable 은 얇은 복사여도 변경 불가능한 immutable 이기 때문이다. [shallow copy: 얇은 복사] immutable 객체는 건너뛰고 mutable 객체를 살펴 보겠다. a = [1, 2, 3] b = a print(id(a), id(b)) a 를 b 에 할당 하고 id 함수를 통해 a, b 의 주소값을 출력하였다. 둘다 동일하게 나온다. 같으 주소를 가르키고 있는 것이다. a = [1, 2, 3] b = a a[0] =..
클래스의 인스턴스는 기본적으로 attribute storage 를 위한 딕셔너리를 가지고 있다(여기서 attribute 는 instance attribute인듯?, attribute:변수) 이로 인해 인스턴스 변수가 별로 없는 경우 객체의 공간을 낭비한다. class Stack: __slots__ = ("data",)__slot__ 을 override 해서 인스턴스 변수를 리스트나 튜플로 미리 지정하면 메모리 낭비를 줄이고 속도를 향상 시킬수 있다. 실제로 __slots__ 을 지정하였을 때와 안했을 때 인스턴스의 사이즈가 다르다. - __dict__ 가 없기 때문에 인스턴스는 __slots__ 에 명시되지 않은 새로운 변수를 할당할 수 없다. - 만약 새로운 변수를 동적으로 할당해야 하는 상황이라면 _..
모듈을 임포트 해보자 import 모듈이름 을 통해서 원하는 모듈을 임포트 할수 있다. 모듈이름은 파일 이름이다. import random print(random.randrange(1, 10)) 위의 경우 randrange 함수 접근이 좀 길다 싶으면 아래처럼 해줄수 있다. from 모듈이름 import 변수/함수 이름 from random import randrange print(randrange(1, 10)) as 로 이름을 바꿀수 있다. import random as rand print(rand.randrange(1, 20)) from random import randrange as rd print(rd(1, 20)) 파일 위에 폴더가 존재할 때는 폴더이름.모듈이름 해주면 된다. import con..
Start [what is program]- attribute- behavior [native vs managed]- release memory- hardware- performance- productivity [why python?]- easy? not easy?- mobile? web service?- frontend/backend- django- automation- tensorflow- productivity- powerful Basic [book]https://wikidocs.net/book/1553 [variable]- types: integer, float, string, bool- How is the type defined?- L value, R value- mutable, immutabl..
파이썬 내장 함수들은 굉장히 강력하다. 클래스 매직 함수들과 더불어서 말이다 range(len(items)) 대신 enumerate 를 사용해 보자. range 는 인덱스로 접근해서 가독성이 좀 떨어지고 실수의 소지도 있다. for i in range(len(q)): print(i, q[i]) for i, v in enumerate(q): print(i, v) enumerate 는 인덱스와 해당 인덱스의 값을 동시에 리턴한다. 안쓰는 변수에는 _ 처리 해줘도 된다. def enumerate(sequence, start=0): n = start for elem in sequence: yield n, elem n += 1 enumerate 함수 내부를 살펴 보자! start 는 시작 인덱스이다. 그리고 중요..
스크립트가 파이썬 인터프리터 명령어로 패싱되어 실행되면(python myscript.py같이) 다른 언어들과는 다르게, 파이썬은 자동으로 실행되는 메인함수가 없습니다. 파이썬은 메인 함수가 없는 대신 들여쓰기 하지 않은 모든 코드(level 0코드)를 실행합니다 다만, 함수나 클래스는 정의되었지만, 실행되지는 않습니다질문하신 경우, 최 상위 코드는 if 블록이고, __name__은 현재 모듈의 이름을 담고있는 내장 변수입니다. python myscript.py 같이 이 모듈이 직접 실행되는 경우에만,__name__ 은 "__main__"으로 설정됩니다.따라서 질문자의 코드가 다른 모듈에 의해 import된 경우 함수와 객체의 정의는 import되지만 __name__이 "__main__"이 아니기 때문에 ..
- Total
- Today
- Yesterday
- 장고
- virtualenv
- 파이썬 입문
- 면접답변
- django
- django chatbot
- Python
- 파이썬 강좌
- 문과 코딩
- GIT
- 장고 카톡 자동응답
- gitlab
- 파이썬
- 엑셀 비교
- Tistory
- 모바일 스킨 적용
- pycrypto
- 모바일 테마 적용
- PuTTYGen
- 파이썬 독학
- chatbot
- 파이썬 프로그래밍
- admin.py
- 이미지 비교
- wsgi
- 문서 비교
- gitignore
- 플러스친구 자동응답
- 장고 플러스친구 자동응답
- 면접정답
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |