본문 바로가기

Python48

[Python Programming 기초] __main__ Github코드를 보다보면 가끔 발견하는 __main__의 정체에 대해 간단히 알아볼까요?이 녀석은 import module의 코드를 실행하고 싶지 않을 때 사용하는 녀석입니다. 기본적으로 import 된 모듈은 "__name__"에 자신의 모듈명이 저장되어 있고, 현재 코드를 실행하는 모듈은 "__name__"에 "__main__"가 저장되어 있으므로 모듈을 직접 실행시키는 경우에만 모듈 내 테스트 코드가 실행되도록 하기 위한 코드입니다.  예를 들어# example_module.pydef greet(): print("Hello! This function is in example_module.")# 테스트 코드 또는 직접 실행하고 싶은 코드if __name__ == "__main__": pr.. 2024. 11. 11.
[Pythonic Programming] Staticmethod/Classmethod 일반적으로 method를 쓸 때 우리는 보통 인스턴스 내부의 변수들을 끌어다 쓰곤 합니다. class clexample: def __init__(self, input_var): self.input_var = input_var def instance_methd(self): print(self.input_var+3)이런식으로 사용하는 method를 instance method라고 합니다. 말씀드렸다시피 instance 내부에 저장해두었던 정보(instance 속성, instance method 등)를 끌어와서 사용해야할 때는 이런식 방식으로 사용해야겠죠. 그런데, instance나 class속성을 필요로 하지 않거나 혹은 class 속성만 필요로 한다면? 이.. 2024. 10. 27.
[Pythonic Programming] Decorator 함수에 정수나 list 등의 자료형을 넣는 것은 굉장히 익숙하지만.. 함수의 인자로 '함수'가 들어간다면? 직접적으로 함수를 변수로서 담을 수도 있지만 가독성에 문제가 생길 수 있습니다. 이런 상황에서 decorator를 사용합니다. 데코레이터는 함수를 인수로 받아 새로운 기능을 추가한 뒤, 원래 함수 대신 반환합니다.def my_decorator(func): def wrapper(): print("기능을 추가합니다.") func() # 원래 함수를 실행 print("추가 기능을 끝냅니다.") return wrapper@my_decoratordef say_hello(): print("Hello!")# 사용 예시say_hello()# 출력:# 기능을 .. 2024. 10. 27.
[Pythonic Programming] Property 파이썬의 property는 객체의 속성에 접근할 때 간편하게 getter와 setter 메서드를 정의할 수 있게 해주는 기능입니다. property를 사용하면, 외부에서 직접 접근할 수 있는 속성처럼 보이지만 내부적으로는 특정 로직을 추가하여 속성의 값을 가져오거나 설정할 수 있습니다. property는 decorator의 일종인데요, decorator에 대한 이야기는 추후 다른 포스팅에서 업로드하도록 하겠습니다. 또 property라는 것은 반드시 이렇게 코딩해야만 한다라기 보다는 제가 지난 포스팅에서 언급한바와 같이 "논리적이고 효율적으로" 글을 쓰는 것처럼 코딩도 논리적으로 구조화하려는 노력이라고 보시면 될 것 같습니다.  파이썬은 직접적인 '접근제어'가 존재하지 않습니다. 다만 private me.. 2024. 10. 26.
[Python Programming 기초] Eval/Exec함수 이 두 함수는 문자열화 되어 있는 수식 계산 또는 문장을 실행하는 역할을 합니다. Eval : 수식을 문자열로 입력하면 계산된 결과값을 반환Exec : 실행 가능한 문장을 문자열로 입력하면 문장 수행 예시 보시면 쉽게 이해하실 것 같습니다. # 간단한 산술 연산result1 = eval("2 + 3 * 4")print(f"eval('2 + 3 * 4') 결과: {result1}") # 출력: eval('2 + 3 * 4') 결과: 14# 변수 사용 (현재 환경의 변수를 참조)x = 10result2 = eval("x * 2")print(f"eval('x * 2') 결과: {result2}") # 출력: eval('x * 2') 결과: 20# 함수 호출 (현재 환경에 정의된 함수를 호출)def gre.. 2024. 10. 25.
[Python Programming 기초] 부분 unpacking tuple, list, set의 unpacking은 *를 이용해서 합니다. dictionary는 **를 이용해서 합니다. (만약 *를 쓴다면 key만 unpack됩니다)numbers = [1, 2, 3, 4, 5]# 첫 번째 값과 마지막 값을 변수에 할당하고, 중간 값들을 `rest` 리스트로 묶음first, *rest, last = numbersprint(first) # 출력: 1print(rest) # 출력: [2, 3, 4]print(last) # 출력: 5 이 부분 unpacking을 함수의 가변인자를 나타내는데도 활용할 수 있습니다. 가변인자란 함수에 전달할 인자의 개수를 고정하지 않고, 유연하게 여러 개의 인자를 받을 수 있도록 하는 방법입니다. 가변 인자는 두 가지 형태로 사용할 수.. 2024. 10. 22.