[A Byte of Python] 12장 객체

[A Byte of Python]
12장 객체

[A Byte of Python] 11장 실생활 문제 해결


클래스

class class_name:
    pass

와 같은 형식으로 사용된며 사용할 때는 value = class_name() 이렇게 사용한다.

메소드

클래스에 속해있는 함수를 의미하는데

class class_name:
    def method1(self):
        pass
    def method2(self):
        pass

이렇게 정의되며 사용될 때는 class_name.method1() 이나 할당 시킨 value에 value.method2()
와 같은 방법으로 사용할 수 있다. (Self에 해대선 아래쪽에서 상세히 다룬다.)

init 메소드

클래스를 처음 생성할 때 초기화 시키는 메소드 이다.

class class_name:
    def __init__(self, name):
        self.name = name

위와 같이 정의하며, 사용할 때는 value = class_name("name string")와 같이 사용한다.

클래스 변수와 객체 변수

클래스 변수 > 클래스 내부에서 자유롭게 사용가능한 함수며 클래스와 함께한다.(사라지지 않는다.)
객체 변수 > 메소드 내부에서 사용되는 변수로 메소드 밖으로 나가게 되면 사라지게 된다.

Self에 대하여

클래스 메소드는 일번적인 함수와 딱 한가지 다른 점이 바로 이 self이다.
메소드의 경우 매개 변수의 목록 맨 앞에 추가해야 한다.
해당 self는 파이썬이 자동으로 판별해 넣어줘 메소드를 사용하면서 우리가 따로 입력 할 필요는 없다.

self가 있는 메소드와 없는 메소드의 차이  ++추가설명

class self_test:
    def test1(self, str):
        print(str)
    def test2(str):
        print(str)

t = self_test()
t.test1("test string")
t.test2("test string")

위와 같은 코드가 있을때,
8번째 줄의 test1 메소드는 정상적으로 작동하지만,
9번째 줄의 test2 메소드는 작동하지 않고 오류를 출력한다.

즉 class에서 self 매개 변수는 value.method(arg) 와같은 형식으로 접근이 가능하게 하는 것이다.
이를 통해 self가 의미하는 바를 알 수 있는데 바로 value로 “자기 자신(self)”을 가르킨다는 것을 알 수 있다.

상속

객체 지향 프로그래밍에 있어서 상속을 빼먹을 수 없다.

부모 클래스로 부터 코드를 받아 재사용이 가능하다.

class child_class(parent_class):

위와 같이 상속 받을 수 있으며 부모 클래스의 코드를 재사용할 수 있다.

 

글의 문제가 있다면 댓글을 달아 주세요.

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.