람다(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()))
# 생략