Day 6 공부

2023. 3. 10. 16:50Unknown

class

 

1) class 지정 후 print(class객체)를 하면 객체와 주소가 나온다.

 

2) Class 메소드 사용시 주의점

 

메소드를 사용해서 새로운 변수에 담아서 조정하는 것이 좋다. 

원본 데이터 안건드는게 좋다.

 

 

3) 메소드 타입

 

> instance method  / class method

 

instance method 

프로퍼티 혹은 데이터 자체를 instance 연산해야할 때 사용 

 

4) 메소드 오버라이딩

 

    def eat(self,food): #메소드 오버라이딩
        print(f'{self.name}는 {food}를 아주 맛있게 먹습니다.')
    
    def superEat(self,food):
        super().eat(food) # super() 부모 클래스를 호출

 

부모클래스는 자식클래스 메소드를 사용할 수 없지만 반대는 가능

(한마디로 부모님꺼 내꺼 / 내껏도 내꺼 ) 불효자 ssekki

 

 

5) 다중 상속

 

C#, Java는 다중 상속이 불가능

파이썬은 C++과 같이 다중 상속이 가능

 

여러 클래스를 상속 받을 수 있다.(갯수 제한 X)

 

cf) 여러 클래스를 상속 받을 수 있다고, 단순히 좋은 기능은 아니다.

다중 상속 클래스를 만들 때 조건이 더 많이 생기고, 복잡해지는 == 따로만드는것과 별 차이가 없는 애매한 상황 

 

# 클래스 생성 1
class Animal:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    
    def eat(self, food):
        print(f'{self.name}은 {food}를 먹습니다.')

    
    def sleep(self,time):
        print(f'{self.name}은 {time}시간 동안 잠을 잡니다.')
        
        

# 클래스 생성 2
class Human:
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def study(self,hour):
        print(f'{self.name}은/는 {hour}시간 동안 공부를 합니다.')


# 다중 클래스 생성
class KimApple(Animal,Human): 
    pass #다중 상속 / 클래스 연관성이 없어야 좋고, 프로퍼티 갯수가 동일해야된다.

 

결과

kimapple에게 메소드 지정을 해주지 않았는데, 사용 가능 !

728x90

'Unknown' 카테고리의 다른 글

CSS 서포트 사이트  (0) 2023.03.28
파일 현재 시간, 수정된 시간 받아오기  (0) 2023.03.16
Day 5 나머지 공부방  (0) 2023.03.09
백준 1427번  (0) 2023.03.09
Day 3. 컴퓨터에서 실수를 저장하는 방법  (0) 2023.03.07