Let's Programming 12

함수 인자값으로 사용하는 *args, **kwargs와 Hint 정리

1. *args와 **kwargs 파이썬에서 함수 인자값으로 *args, **kwargs를 사용하는 경우가 있습니다. 이 인자값에 대해 정리해보고자 합니다. 그리고 추가로 함수나 클래스를 정의할 때, 인자값의 type를 적는 hint 지정에 대해서도 함께 정리해보고자 합니다. *args, **kwargs는 각각 argument, key word argument로, 함수 인자값을 positional로 받거나 인자값을 유연하게 받기 위해 사용합니다. 좀더 알기 위해 예제 코드를 작성하고 그 결과값을 살펴보겠습니다. def test_func(x, y, z=None, *args, **kwargs): print('1st args is x:', x) print('2nd args is y:', y) print('3n..

Class와 관련된 용어 정리

Python이란 언어를 접한지는 꽤 오랜 시간이 지났지만, 용어와 용법은 늘 잊어버리고, 다른 분들의 글을 읽다보면 잘 이해를 못하는 경우가 많네요. 그래서 관련 용어들을 정리해놓고, 혼란스러울 때마다 찾아보고자 합니다. 제 개인적으로 혼란스러운 용어들은 attributes, method 등등의 용어인데, 이 용어들은 Object-oriented programming에서 사용하는 용어와 관련이 있는 것 같습니다. Object-oriented programming에서의 객체(Object)는 states와 behavior를 가진다고 합니다. 이를 Python에서 사용하는 용어와 맵핑해보면 다음처럼 정리해볼 수 있을 거 같습니다. ('같습니다'라고 적은 것은 저도 아직은 자신이 조금 없어서... 혹시 다른 고..

tab 문자를 space로 변경

vim을 통해 python 코드를 작성하다 보면, tab과 space가 혼재되어 있어서 indentation 에러가 발생하는 경우가 있습니다. 이 때, tab문자를 일괄 space로 변경하면 되는데, 그 방법을 정리해놓고자 합니다. 방법은 그리 대단하지는 않습니다. 먼저 Command모드에서 다음을 실행합니다. :set expandtab 그 다음에 다음을 실행합니다. retab 참 쉽죠?

R 코딩 스타일

코딩을 하다보면, 항상 함수명, 변수명을 어떻게 하는게 좋은지가 고민이 됩니다. 인터넷을 찾아보아도 마땅한 자료도 없고, 정답도 없다는 글들이 많아서 조금씩 저만의 코딩 스타일을 정의해보려고 합니다. 일단 시작은 구글 스타일로부터 시작하려고 합니다. https://google.github.io/styleguide/Rguide.xml 1. 데이터 / Plot에 대한 Naming rule 데이터는 dt(data)로 시작하고, Plot은 pl(plot)으로 시작한다. 의미는 .으로 구분하되, dt.의미.원본 또는 가공 목적(raw / ref(refined)).grp.그룹변수명(그룹된 경우, group by한 컬럼을 나열함) pt.plot종류(line, point, ...).데이터(dt. 동일하게)

VIM에서 ^M 제거하기

유닉스와 도스 환경에서 같이 작업을 하다보면, VIM에서 개행문자가 ^M으로 보이는 경우가 발생합니다. 이를 치환해서 해결할 수 있는데, 윈도우 GVim과 리눅스에서 차이가 있어 이를 정리해두고자 합니다. 리눅스에서는 일반적으로 Ctrl+v, Ctrl+m으로 ^M를 vim 커멘드 모드에서 입력할 수 있습니다. :%s/^M//g 윈도우에서는 Ctrl+v대신 Ctrl+q를 사용하면 됩니다. Ctrl+v가 붙여넣기 단축키로 설정되어 있기 때문에 Ctrl+v가 리눅스의 그것과는 달라지게 됩니다.

Vim Airline에 Trailing이 보인다면?

Vim Plugin 중 Airline를 사용하면, 다양한 정보를 우측 하단에 보여주게 된다.처음에는 별 필요없다고 느껴졌던 정보들이 개발을 하다보면 매우 소중하게 느껴진다. ㅎㅎ Mixed-Indent 등 tab과 공백이 서로 섞여있는 라인수도 보여주는데, 해당 건은 :retab를 통해 해결이 가능하다 (사용팁 참조)그런데, 간혹 Trailing이라는게 보인다. 이것은 해당 라인 뒤에 무의미한 공백이 들어가 있음을 알려주는 것이다.그래서 이 건은 무의미한 공백을 제거해주면 해결된다. 무의미한 공백을 찾아서 제거하는 방법은 %s/\s\+$//gc 이 명령어를 활용하면 된다.

Vim 활용 - 키보드 맵핑

Vim을 본격적으로 사용하려면, 키보드 맵핑 활용은 필수인거 같네요. 제가 원하는 단축키를 만들어 사용할 수 있는 키보드 맵핑은 Vim을 더욱 강력하게 만들어주는 듯합니다.그래서, 이번에는 Vim에서의 키보드 맵핑 활용에 대해 정리해보고자 합니다. 이번 글은 https://blog.naver.com/nfwscho/220407221737 의 도움을 많이 받았습니다. 이 분의 블로그에 Vi/Vim에 대해서는 정말 잘 정리되어 있습니다. Vi에 막 입문하신 분이라면 꼭 한번 방문하셔서 읽어보세요. 큰 도움이 될 것입니다.이제 본격적으로 키보드 맵핑에 대해 적어보겠습니다. Vim에 대해 검색을 하다보면, 다음과 같은 코드를 보실 수 있습니다. 이 코드가 바로 키보드 맵핑 코드입니다. 아래 예를 해석해보면, "키..

gVim 설치기 - (3) Plugin 연동 (vundle)

2017/08/27 - [Let's Programming/Editor - Vim] - gVim 설치기 - (2) 설정편 Vim-plug에 대해서 다른 글에 적긴 했는데, 아무래도 대세인 Vundle을 사용해보고 싶어서 Vundle로 전환하였습니다. (최종적으로는 vundle를 사용하고 있습니다.) 1. Vundle 설치 관련홈페이지 : https://github.com/VundleVim/Vundle.vim VundleVim/Vundle.vim Vundle, the plug-in manager for Vim. Contribute to VundleVim/Vundle.vim development by creating an account on GitHub. github.com Vundle을 설치하기 위해서 먼저..

gVim 설치기 - (3) Plugin 연동 (vim-plug)

2017/08/27 - [Let's Programming/Editor - Vim] - gVim 설치기 - (2) 설정편 이젠 기본적인 vimrc 설정이 완료되었습니다. 지금부터는 plugin을 통해서 좀더 편한 viming이 가능하도록 설정해보겠습니다. plugin은 https://vimawesome.com에 잘 되어 있습니다. 특히, 제가 사용하고자 하는 color scheme도 잘 되어 있어, 애용하게 되었습니다. Plugin을 사용하기 위해서는 여러 방법이 있지만, 저는 Vim-plug를 사용해보려 합니다. Googling을 해보면, Vundle이 대세(현재 시점)로 보입니다. 하지만, Vim-plug가 좀더 가볍다고 설명되어 있고, 우리나라 분이 만든 거 같아서 사용해보려 합니다. Vim-plug..

Vim 사용팁

Vim을 설정하고, 사용하다보면, 여러 사용법을 익히게 됩니다. 그 중에서 잘 사용하지만, 자주 잊어버리는 사용법에 대해 일종의 팁이라는 제목으로 관리하고 공유하고자 합니다. 1. 레지스터에 등록, 복사하고 붙여넣기 일반모드에서 특정 라인에서 " (레지스터리명: 1,2,3,.. a, b...) yy 라고 차례대로 누르면, 해당 라인이 레지스터리에 복사되어 등록됩니다. 예를 들어, "ayy 를 누르면, a라는 공간에 해당 라인이 복사됩니다. 붙여넣기는 " (레지스터리명: 1,2,3,.. a, b...) p 를 차례대로 누르면 됩니다. 레지스터리 확인은 :reg 로 가능합니다. 2. 창 나누기 (Multi window) VIM에서 창을 나누는 명령어는 :sp (split, 수평분할), :vs (vertica..

반응형