Category Archives: Python

[python] binary to ascii / ascii to binary 변환

binary to ascii

ascii to binary

[python] multiprocessing 에서 args 에 string 전달 방법

string을 아래와 같이 전달하는 경우
p = multiprocessing.Process(target = ArgTest, args = Arg)

이런 메시지가 나온다.

string은 아래와 같이 전달해야 한다.
p = multiprocessing.Process(target = ArgTest, args = (Arg,))

[python] integer 의 bit length

Integer 값에서 bit length를 알아내기
가만히 생각해보면 쉽지만 막상 만드려니 짜증나고, 반올림 같은 것도 생각해야 한다.

python 기본 method 중 bit_length 라는 것을 사용하면 쉽게 고칠 수 있다!

[python] pexpect 사용법

shell 명령어에 보면 expect라는 명령어가 있다.
이것은 expected 값을 기반 자동 수행 명령어라고 보면 간단하겠다.

python에는 이와 같은 기능의 pexpect라는 것이 있다.

아래의 example은 FTP 서버에 접속하는 프로그램이다.
접속 후 간단한 명령어를 넣는 동작까지 example로 작성하였다.
parser등을 이용하면, 업로드/다운로드 등의 동작을 단순화 할 수 있다.
– 예전에 어디서 배껴왔는데.. 출처를 몰라서.. 문제시 삭제하겠습니다. 연락주세요..

[python] class inheritance, initialize, argument 정리

우선 기본 예제를 보자

부모 class : TestClassA
자식 class : TestClassB

TestClassA에는 Class variable “Name” 이 있다.
TestClassB를 사용할 것이다.
아래와 같이 arguments를 넘겼다.

TestClassB에서 TestClassA의 상속과 함께 __init__ 하는 방법은 두 가지가 될 수 있는데, (super를 사용하는 방법도 있으나 생략)
1. TestClassA.__init__(self,Name)
2. TestClassA.__init__(self,*args, **kwargs)

1의 경우엔 TestClassA 에서 선언된

Name이라는 class 변수를 전달 받는 것이다.

2의 경우엔 TestClassA로 ClassTestB를 부를 때
( Tb = TestClassB(Name, Company, Config=Config) )
넘긴 인자들을 고대로 받는 것이다.
이 경우에 TestClassA의 arguments를 받는 부분도 아래와 같이 수정되어야 한다.

전체를 몽땅 넘겨받아서 적절히 알아서 쓰는 방식이다.
혼자서 사용하기 편할 수는 있을 것 같은데.. 장, 단점이 있어보인다.

Arguments – *args 와 **kwargs
예제를 수행하면 알 수 있지만,
args에는 입력된 일반 변수가 넘어오고, kwargs에는 dictionary 형태의 것들이 넘온다.

예제를 보면 이해가 쉽다.

위 예제에서 args 와 kwargs의 결과는 아래와 같다.

이것을 요렇게 Tb = TestClassB(Name, Company, a=4, b=3) 바꿔보면,
결과

요렇게도 Tb = TestClassB(Name, Company, [], "") 바꿔보면?

이제야 느낌이 온다..