[파이썬] 람다(lambda) 함수란

람다(lambda) 함수

  • 익명 함수(anonymous function)로써, 이름 없이 정의되고 사용될 수 있는 함수
  • 주로 간단한 연산을 수행할 때나 함수를 인자로 전달해야 할 때 유용하게 사용된다

구문

lambda arguments: expression
  • arguments 는 람다 함수의 인자들을 나타내고
  • expression 은 해당 인자들을 이용하여 연산을 수행하고 반환할 값을 나타낸다

예시

def add(x, y):
    return x + y
  • 위 함수를 람다 함수로 아래와 같이 바꿀 수 있다
add = lambda x, y: x + y
print(add(3, 5))  # 출력: 8

SQLAlchemy 에서의 사용 사례

  • user_id 컬럼의 default 값을 uuid.uuid4() 으로 지정했더니,
  • 실행할 때마다 같은 값이 할당됨
  • uuid.uuid4() 의 결과값이 default 값으로 사용되기 때문
class UserMaster(Base):
    __tablename__ = "user_master"
    user_id = Column(String(36), primary_key=True, default=uuid.uuid4())
    user_email = Column(String(320), nullable=False, unique=True)
    role_code = Column(String(30), ForeignKey("user_role.role_code"), nullable=False, default="NORMAL")
    social_id = Column(String(255))
    created_at = Column(DateTime, nullable=False, server_default=func.now())
    updated_at = Column(DateTime, nullable=False, server_default=func.now())
    user_role = relationship(
        UserRole, backref=backref("user_role", uselist=True, cascade="save-update")
    )
  • 람다 함수를 사용하여 클래스 인스턴스 생성시 uuid.uuid4() 를 실행하여 값을 할당하도록 하였음
class UserMaster(Base):
    __tablename__ = "user_master"
    user_id = Column(String(36), primary_key=True, default=(lambda: uuid.uuid4()))
    # 생략

links

social