ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [python] pass
    python 2025. 5. 28. 16:50

    pass

    Python에서 pass는 아무것도 하지 않고 넘어간다는 뜻입니다.
    문법적으로는 코드가 있어야 하는 위치지만, 실제로는 아무 동작도 원하지 않을 때 사용합니다.

     

    ✅ pass란?

    아무 동작도 하지 않는 문장 (placeholder)
    Python 문법상 구문이 필요한 곳에 임시로 사용합니다.

     

     

    📌 언제 사용하나요?

    1. 함수/클래스를 미리 정의해두고 싶을 때

    def future_function():
        pass  # 아직 구현 안 함
    
    class MyClass:
        pass  # 클래스 구조만 잡고 나중에 구현

     

    2. 조건문, 반복문 등을 작성하다가 "지금은 비워둘 때"

    for i in range(5):
        pass  # 반복만 해놓고 동작은 아직 없음
    
    if False:
        pass  # 조건은 있으나 아무 것도 하지 않음

     

    3. 예외 처리 시 무시하고 싶을 때

    try:
        risky_code()
    except:
        pass  # 예외가 발생해도 무시하고 넘어감 (주의: 남용 금지)

     

    ❗ 주의할 점

    • pass는 실제로 아무 동작도 하지 않습니다.
    • 에러를 피하거나 코드 구조만 미리 만들 때 임시로 넣는 용도입니다.
    • 너무 많이 쓰거나 예외 처리에 남용하면 버그를 숨기기 쉬우므로 조심해야 합니다.

     

    ✅ 정리

    항목 설명
    역할 아무 동작도 하지 않음
    사용 위치 함수, 클래스, 조건문, 반복문 등
    용도 임시 코드 자리표시자
    주의사항 실제 로직 작성 없이 끝나지 않도록

     

     

    실습

    # 일반 유닛
    class Unit:
        def __init__(self, name, hp, speed):
            self.name = name
            self.hp = hp
            self.speed = speed
    
        def move(self, location):
            print("[지상 유닛 이동]")
            print("{0} : {1} 방향으로 이동합니다. [속도 {2}]"
                  .format(self.name, location, self.speed))
    
    # 공격 유닛
    class AttackUnit(Unit):
        def __init__(self, name, hp, speed, damage):
            Unit.__init__(self, name, hp, speed)
            self.damage = damage
    
        def attack(self, location):
            print("{0} : {1} 방향으로 적군을 공격합니다. [공격력 {2}]"\
                  .format(self.name, location, self.damage))
    
        def damaged(self, damage):
            print("{0} : {1} 데미지를 입었습니다.".format(self.name, damage))
            self.hp -= damage
            print("{0} : 현재 체력은 {1} 입니다.".format(self.name, self.hp))
            if self.hp <= 0:
                print("{0} : 파괴되었습니다.".format(self.name))
    
    # 날 수 있는 기능을 가진 클래스
    class Flyable:
        def __init__(self, flying_speed):
            self.flying_speed = flying_speed
    
        def fly(self, name, location):
            print("{0} : {1} 방향으로 날아갑니다. [속도 {2}]"\
                  .format(name, location, self.flying_speed))
    
    # 공중 공격 유닛 클래스
    class FlyableAttackUnit(AttackUnit, Flyable):
        def __init__(self, name, hp, damage, flying_speed):
            AttackUnit.__init__(self, name, hp, 0, damage)  # 지상 속도 0
            Flyable.__init__(self, flying_speed)
            
        def move(self, location):
            print("[공중 유닛 이동]")
            self.fly(self.name, location)
    
    # 건물
    class BuildingUnit(Unit):
        def __init__(self, name, hp, location):
            pass
        
    # 서플라이 디폿 : 건물, 1개 건물 = 8유닛
    supply_depot = BuildingUnit("서플라이 디폿", 500, "7시")
    
    def game_start():
        print("[알림] 새로운 게임을 시작합니다.")
        
    def game_over():
        pass
    
    game_start()
    game_over()

    'python' 카테고리의 다른 글

    [python] 스타크래프트 프로젝트  (0) 2025.05.29
    [python] super  (0) 2025.05.28
    *[python] 메소드 오버라이딩  (0) 2025.05.28
    [python] 다중상속  (0) 2025.05.28
    [python] 상속  (0) 2025.05.28
Designed by Tistory.