본문 바로가기

Python5

Python - for-else과 while-else문을 알아보자 이 글을 보고 들어오신 당신의 Python철학은 참으로 놀랍습니다. for-else문을 아는 사람을 거의 본 적이 없거든요. 대단한 호기심에 감탄을 표합니다. 짝짝그래서 for-else문과 while-else문이 뭘까?둘다 그냥 조건이 끝나면 실행되는 거다.아래 for-else문 같은 경우 리스트를 다 출력하면 ‘for 끝’이라는 문자열이 출력된다.for i in [1, 2, 3, 4, 5]: print(i)else: print("for 끝")아래는 출력 결과이다.12345for 끝아래 while-else문도 마찬가지이다. j j = 0while j 아래는 출력 결과이다.0123456789while 끝주의할 점break나 exit로 for, while문이 종료됐을 경우 실행이 되지 않으니 주의.. 2024. 6. 18.
Python - 멤버 변수를 출력하는 다양한 방법 Python에서 클래스의 멤버 변수들을 출력하는 방법들이 있다.보통 dir함수를 많이 사용한다.class MyClass: def __init__(self): self.a = 1c = MyClass()print(dir(c))하지만 출력결과를 보면 참담하다. 내가 만든 a라는 프로퍼티 외에도 다른 것들이 출력되고 있다.['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__re.. 2024. 6. 17.
Python - 데코레이터(decorator)를 알아보자 파이썬에 ‘@’키워드가 뭔지 궁금했다. 알고보니 데코레이터라는 거라고 한다.데코레이터란?@classmethod, @staticmethod, @property과 같이 ‘@’키워드가 붙은 건 전부 파이썬의 데코레이터이다.또, 데코레이터는 함수를 장식할 수 있다는 특징이 있다.데코레이터는 fastapi로 서버를 만들때나 discord봇을 만들 때 사용하는 걸 봤다. getter, setter를 구현할때도 쓰인다. 앞으로 많이 사용할 것 같으니 그 원리를 정확하게 이해하고 가자!이 데코레이터라는 것을 한번 만들어보자.def log(func): def wrapper(*args, **kwargs): print(f'start {func.__name__} function') func(*a.. 2024. 6. 17.
Python - Python에서 싱글톤 패턴 구현하기 파이썬에서 싱글톤 구현하는 방법을 알아보자.싱글톤을 왜 사용하는가한 인스턴스만 생성해서 그것만 사용하고 싶을때 쓴다.장점으로는 메모리 낭비 방지, 인스턴스를 전역적으로 쓸 수 있어 다른 코드에서 해당 싱글톤의 데이터를 공유할 수 있다는 점이다.하지만 싱글톤 클래스에게 너무 많은 일을 위임하거나 데이터를 공유시키면 클래스 간의 결합도가 높아져 개방폐쇄원칙에 위배된다. 또, 멀티스레드 환경에서 문제가 발생할 수 있다.결론적으로 꼭 필요한 경우에만 만들어 사용해야 한다.싱글톤을 구현한 코드는 아래와 같다.Singleton클래스를 상속받은 뒤 instance메서드를 써서 인스턴스를 얻으면 끝이다.class Singleton: __instance = None @classmethod def __ge.. 2024. 6. 16.