엄범

hidden-features-of-python


설정값 (config file. properties, json, yml) 관리하기

https://mingrammer.com/ways-to-manage-the-configuration-in-python/


requests와 json 주의할 점

python에서는 `` '`` 와 `` "``를 모두 사용 할 수 있지만
json 규격에는 "만 사용하도록 되어 있다. https://www.json.org/json-en.html
기타 언어도 마찬가지. 그래서 data= 대신 json=을 사용하거나, 직접 json.dumps() 해주어야 한다.


editable로 설치

```python

pip install --editable . 

    -e, --editable <path/url>

        Install a project in editable mode (i.e. setuptools “develop mode”) from a local project path or a VCS url.

```


패키지 수동 설치

패키지 압축을 해제하고 `` dist``(distribution) 폴더로 이동해서 다시 tar 압축 해제
반드시 해당 폴더에서 진행할 것.
```bash
python setup install
```


CLI에서 쓸만한 라이브러리


paramiko (docs) 

python으로 SSH를 사용할 수 있는 모듈. server, client 모두 지원한다.

아나콘다에 기본적으로 포함되어 있는 pexpect 라는 모듈도 있다.

둘 중 어느게 더 좋은지는 모르겠음. pexpect의 경우 프롬프트를 자동으로 인식하는 등 약간 휴리스틱이 들어가 있는 듯?


2to3 -w aaa.py

```bash
λ 2to3 -w UCT.py
λ ls
UCT.py  UCT.py.bak
```
python2로 작성된 파일을 3으로 수정하려면 2to3 모듈을 사용한다. -w옵션을 주면 자동으로 백업파일 생성하면서 3로 변경해준다.
변경 이후 발생하는 에러는 대부분 문자열, 바이트 인코딩 관련 오류이므로, ``python b' '`` 또는 .``python encode()`` 메소드 등으로 적절히 해결한다.

Evaluation strategy

파이썬은 call by object reference다.

immutable object를 넘길 경우 ( 정수나, 정수를 참조하는 변수 ) call by value처럼 동작한다.

mutable object를 넘길 경우 (리스트 등) call by reference처럼 동작한다.