프로그래밍 언어/파이썬 Python

클래스 사용하기

집빈지노 2021. 6. 4. 18:22

*출처: 파이썬 코딩도장

1. 클래스 사용하기

클래스에는 속성메소드 가 있다.

1.1 클래스 선언과, 메소드와 인스턴스 만들기.

#클래스 선언
class Person:
	#method
    def greeting(self):
        print('Hello')

# 인스턴스 만들기
james = Person()

# 메소드 호출하기
james.greeting()
>>> Hello

# isinstance(인스턴스, 클래스) : 특정 클래스의 인스턴스인지 확인하기.

 

1.2 속성 사용하기

class Person:
	#init method: 인스턴스가 생성될 때 호출된다.
    def __init__(self):
        self.hello = '안녕하세요.'   #인스턴스 속성 선언
 
    def greeting(self):
        print(self.hello)
 
james = Person()
james.greeting()    >>> 안녕하세요.

1.3 self의 의미

self는 인스턴스를 의미한다.

1.4 인스턴스를 만들 때 값 받기

class Person:
    def __init__(self, name, age, address):
        self.hello = '안녕하세요.'
        self.name = name
        self.age = age
        self.address = address
 
    def greeting(self):
        print('{0} 저는 {1}입니다.'.format(self.hello, self.name))
 
maria = Person('마리아', 20, '서울시 서초구 반포동')
maria.greeting()    # 안녕하세요. 저는 마리아입니다.
 
print('이름:', maria.name)       # 마리아
print('나이:', maria.age)        # 20
print('주소:', maria.address)    # 서울시 서초구 반포동

- *args나 **kwargs로 위취 인수, 키워드 인수를 받을 수도 있다.

 

* 클래스로 인스턴스를 만든 뒤에도 인스턴스.속성 = 값 형식으로 속성을 추가할 수도 있다. 이렇게 추가한 속성은 해당 인스턴스에만 생성된다.

  또, __init__ 메서드가 아닌 다른 메서드에서도 속성을 추가할 수 있다.

* __slots__ = []  를 이용해 허용할 속성만 제한할 수도 있다.

 

1.5 비공개 속성 사용 (private attribute)

  __를 속성이름 앞에 붙이면 비공개 속성이 된다. 비공개 속성은 클래스 안에서만 메소드로 접근할 수 있다.

 

* 비공개 메소드도 있는데 메소드 앞에 __를 붙인다. 이도 역시 클래스 안의 메소드에서만 호출 가능하다.

 

2. 클래스 속성과 정적, 클래스 메소드 사용하기

1. 클래스 속성

클래스 속성은 모든 인스턴스에서 공유한다.

위와 같이 사용한다.

2. 정적 메소드 사용하기

* 정적 메소드는 self를 받지 않으므로 인스턴스 속성에는 접근할 수 없다.