본문 바로가기
파이썬

파이썬 공부하기 기초부터 시작 (클래스)

by ㈜㎹Ω∞ 2022. 7. 7.
728x90

클래스는 똑같은 무언가를 계속해서 만들어낼 수 있는 설계도, 도면, 틀과 같습니다. 객체는 클래스에 의해 만들어진 것, 즉 물건, 실체 같은 것을 말합니다. 클래스에 의해 만들어진 객체를 인스턴스라고도 말하는데, 인스턴스란 어떤 클래스의 객체인지, 관계를 설명할 때 사용됩니다.

  1. sm5설계도는 클래스, sm5는 객체입니다.
  2. 63빌딩 도면은 클래스, 63빌딩은 객체입니다. 또한 클래스에 의해 만들어진 객체는 독립적입니다.
  3. sm5는 객체입니다. sm5는 sm5설계도의 인스턴스입니다.라고 표현 가능합니다.

 

클래스

클래스에서 객체의 데이터를 정하는 것을 속성이라고 하며, 객체가 해야 할 일(함수)을 정하는 것을 메소드라고 합니다. 예를 들어 자동차의 무게, 바퀴수 등등 이런 거를 속성이라고 하면, 시동걸기, 클락션 울리기 등을 메소드라고 합니다. 클래스 또한 콜론":"과 들여쓰기를 잘해야 하며, self, 생성자, 초기화에 대한 개념을 정확히 알아야 합니다. 클래스를 사용할 때는 class 이름(): 이렇게 사용 가능하며, 이름 첫 글자는 대문자로 사용해야 합니다."class Star():"

 

class Myname:
    def abc(self, name1, name2):	###self=자기자신,name=매개변수1,namename=매개변수2
        self.name3=name1	###1.객체의데이터(속성)을 name1이라고 설정/밑에설명과 같은뜻
        self.name4=name2	###2.인수값을 매개변수2에 저장 /위 설명과 같은뜻
    def print_name(self):	
        print("이름 {0}, {1} 두개가 있습니다".format(self.name3,self.name4))
              
a=Myname()	###객체생성
a.abc("티스토리","네이버")	###인자값

a.print_name()	###출력
이름 티스토리, 네이버 두개가 있습니다

 

__init__ 사용으로 객체를 처음만들때부터 객체속성값을 정할 수 있습니다. 이를 초기화라고 말합니다.

 

class Myname:
    def __init__(self, name1, name2):
        self.name3=name1
        self.name4=name2
    def print_name(self):
        print("이름 {0}, {1} 두개가 있습니다".format(self.name3,self.name4))
              
a=Myname("티스토리","네이버")	###처음 객체를 생성할때부터 값을넣어줍니다.

a.print_name()	###출력
이름 티스토리, 네이버 두개가 있습니다

 

 

클래스 상속

클래스를 만들 때 다른 클래스의 기능을 이어받을 수 있는데, 이때 class 이름(): ()안에 이어받을 클래스 이름을 넣으면 됩니다 (상속받을 클래스가 없다면()생략가능합니다.) 또한 이어받은 클래스를 새롭게 작성해서 사용할 수도 있습니다. 이를 매소드 오버라이딩이라고 합니다.

 

### 클래스상속
class all:	###클래스만듬
    def __init__(self, name):	### 초기화사용
        self.name=name

class next(all):	### 클래스all 속성과 데이터를 이어받음
    pass	###아무기능없음

a=next("티스토리")	### next클래스로 a객체를만듬, 값입력
print(a.name)	### name을출력
티스토리

### 메소드 오버라이딩
class Myname:	### 클래스생성,상속받을 클래스없어서()생략
    def __init__(self, name1, name2):
        self.name3=name1
        self.name4=name2
    def print_name(self):
        print("이름 {0}, {1} 두개가 있습니다".format(self.name3,self.name4))

class Youname(Myname):	### Youname클래스생성, Myname클래스 상속받을거라서()사용함
    def print_name(self):
        print("너의 이름은 {0}, {1}".format(self.name3,self.name4))

a=Myname("티스토리","네이버")	### a라는 객체생성과 값입력
b=Youname("다음","네이버")	### b라는 객체생성과 값입력
이름 티스토리, 네이버 두개가 있습니다	### a출력물
너의 이름은 다음, 네이버	### b출력물, Myname을 이어받아서 바꾸고싶은 부분만 다시작성
728x90

댓글