안녕하세요. 이번 시간에는 python의 setattr에 대해 간단하게 알아보겠습니다. 먼저 A 클래스는, __init__ 함수가 호출되면, a, b, c에 각각 0을 넣습니다. 다음에, 객체를 표현하는 __repr__은 a=a의 값, b=b의 값, c=c의 값 형태로 출력해 줍니다. 객체 a를 생성하고, a와 b와 c에 각각 1을 넣어보겠습니다. 그 다음에 a를 출력해 보겠습니다. 그러면 a=1, b=1, c=1이 나옵니다. 그런데, 속성 값이 100개쯤 있고, 딕셔너리에도 속성 값이 100개쯤 있는데 일일히 a.a = 1, a.b = 1 이런 식으로 넣기는 코드가 너무 길어질 겁니다. setattr 함수를 알아보겠습니다. setattr(x, 'y', v)는 x.y = v와 같다고 되어 있습니다. 즉,..
파이썬 검색 결과
모듈의 실행 시간을 측정할 때 간단하게 쓸 수 있는 timeit에 대해 알아봅시다. 사실 2년 전에 쓰려고 했지만, 이제 와서 쓰게 되네요. 먼저 timeit은 문서에서의 소개를 보면, python code의 실행 시간을 측정하는 방법을 제공합니다. 함수 형태로 제공하는 것과 커멘드 라인으로 제공되는 형태가 있습니다. 함수 형태로 제공되는 것 먼저 보겠습니다. stmt는 실행될 문장을 의미합니다. number는 몇 번이나 실행될 것인지를 나타냅니다. 저는, 보통 측정해야 할 부분이 있을 때에는 함수로 빼서 많이 하는 편인데요. 한 번 간단하게 작성해 보도록 하겠습니다. 문서에 따르면, 8 ~ 11번째 줄의 의미는 test()를 50만번 실행할 때 걸리는 시간을 측정하는 것입니다. 문제는, test가 정의..
파이썬 버전을 확인하고 싶습니다. 어떻게 하면 좋을까요? 먼저 윈도우에서는 python -V 명령을 입력하시면 됩니다. Python 3.10.8 이라는 정보가 뜹니다. venv가 활성화 된 상태에서 버전을 출력했으니, 활성화가 된 가상 환경에서의 파이썬 버전일 겁니다. 그런데, sys 모듈에서 파이썬 버전을 확인할 수도 있습니다. 링크를 보시면, sys의 version_info를 보면 된다고 되어 있어요. 위 결과를 보면, major, minor, micro 버전 등을 알 수 있어요. 3.10.8 버전을 쓰고 있음을 알 수 있어요. sys.version_info[0]을 출력해 보니 3이 나옵니다. major 버전이 3이라는 의미입니다. 다음에, sys.version_info[1]을 출력해 보니 10이 나..
이번 시간에는 파이썬 hasattr과 getattr에 대해 간단하게 알아봅시다. 먼저 hasattr은 객체가 "name"이라는 속성을 가지고 있는지 알아냅니다. 만약에 그렇지 않다면 False를 돌려줍니다. 이 함수는 무언가를 부른다고 되어 있는데요. getattr을 부르고, AttributeError를 catch함으로써 완료한다고 되어 있어요. getattr은 object에서 속성 "name"을 얻습니다. 만약에 없다면, default 값을 뱉어냅니다. default가 없다면 exception을 떨어트립니다. 이 두 함수가 무엇을 하는지 보셨으리라 생각합니다. 이제, 예제를 보겠습니다. 먼저 Child에는 loc과 x가 있습니다. 7번째 줄에 hasattr을 부르는데요. child라는 인스턴스에 "lo..
파이썬의 isinstance 함수에 대해 알아봅시다. isinstance(obj, class)은 obj가 class instance인지, 혹은 class의 subclass instance인지를 검사합니다. 뭔가 좀 어려워 보이는데요. 쉽게 말해 객체가 동물 instance인지, 아닌지를 검사할 때 쓰일 수 있는 함수입니다. 예를 하나 들어보겠습니다. Parent 클래스하고 Child 클래스가 있습니다. Child는 Parent를 상속받고 있습니다. 이를 그림으로 그리면 아래와 같습니다. 이제, 예제를 보겠습니다. par는 Parent 객체입니다. 그리고 child는 Child 객체입니다. 12번째 줄부터 볼까요? child가 Parent instance는 아니지만, Parent를 상속받는 Child의 i..
최근댓글