될때까지

((Python)) 추가 개념정리 본문

프로젝트/wecode

((Python)) 추가 개념정리

랖니 2022. 6. 24. 19:44
728x90

1. 함수안에 return이 없으면 print문으로 실행 시 결과값으로 None을 리턴한다.

def add_nums(a,b):
    print(a+b)

print(add_nums(4,5))
# 9
# None


def test():
    print('테스트')

a = test()
print(a)
# 테스트
# None

2. 함수는 반환값 return이 없을 수도 있다.

 

3. 튜플도 인덱싱이 가능하다. 즉 튜플은 순서가 있는 자료형이다.

a = (1,2,3,4,5)
print(a[0:3])
# (1, 2, 3)

 

4. *args는 인자 몇개가 들어올지 모를 때 사용하며, 결과값을 튜플로 반환한다.

**kwargs는 key, value의 값이 몇개가 들어올지 모를 때 사용하며, 결과값을 딕셔너리로 반환한다.

*args, **kwargs의 위치는 제일 마지막이고, 함수의 input위치와 output의 위치도 일치시켜야한다.

 

5.메소드에서 self는 클래스로 만들어낸 인스턴스 자체를 가리킨다.

인스턴스란 클래스로 만들어낸 객체다.

무조건 처음에 들어오는 매개변수를 self로 인식하며, 꼭 이름이 self가 아니여도 되지만 self로 많이 쓴다.

__init__처럼 __와 __로 끝나는 메소드를 매직메소드라고 한다. __init__는 생성자라고 하며 어떤 클래스의 인스턴스가 생성될 때 파이썬 인터프리터에 의해 자동으로 호출되는 메소드다.

 

6. 인스턴스 변수는 각각의 인스턴스마다 독립적으로 갖고 있는 변수고 생성자 클래스 내부에서 만들어진다.(서로 영향을 주지 않는다.)

클래스 변수란 모든 인스턴스 사이에서 공유된 값을 가진 변수다. (서로 영향을 준다.)

class Car:
    
    owner = 'Jeon'   # 클래스 변수
      
    def __init__(self, maker, year, model, ai_mode): 
        self.maker   = maker   # 인스턴스 변수
        self.year    = year
        self.model   = model
        self.ai_mode = ai_mode

    def is_ai_drive(self):
        if self.ai_mode:
            print("AI가 대신해서 운전하고 있습니다.")
        else:
            print("AI는 무슨! 얼른 운전대 안 잡니?")
    
    def move(self):
        print(f"{self.model}가 움직입니다.")

    def stop(self):
        print(f"{self.model}가 멈춥니다.")


car1 = Car('KIA', 2022, 'K5', True)
car2 = Car('HYUNDAI', 2002, 'SONATA', False)

 

7. 상속받았을 때 같은 이름이 존재하면, 자식이 이긴다.

728x90