본문 바로가기

프로그래밍/Python

클래스(Class)

클래스와 인스턴스, 메서드 사용

class Person:
    def greeting(self):
        print('hello')

john = Person()
john.greeting()
print(type(john))

## 출력
hello
<class '__main__.Person'>

 

메소드 안에서 메서드 사용

class Person:
    def greeting(self):
        print('hello')
    def hello(self):
        self.greeting()

john = Person()
john.greeting()
john.hello()

## 출력
hello
hello

self는 인스턴스 자신을 가리킴

 

클래스의 속성

class Person:
    def __init__(self):
        self.name = "John"
    def greeting(self):
        print("I'm "+self.name)

john = Person()
john.greeting()

## 출력
I'm John

 

인스턴스를 생성할 때 값받기

class Person:
    def __init__(self,name, age):
        self.name = name
        self.age = age
    def greeting(self):
        print("I'm {} and {} years old".format(self.name, self.age))

john = Person('John',25)
john.greeting()
maria = Person('Maria', 21)
maria.greeting()

## 출력
I'm John and 25 years old
I'm Maria and 21 years old

 

인스턴스의 속성 추가, 변경

class Person:
    def __init__(self,name, age):
        self.name = name
        self.age = age
    def greeting(self):
        print("I'm {} and {} years old".format(self.name, self.age))

john = Person('John',25)
john.greeting()
maria = Person('Maria', 21)
maria.greeting()
maria.name = 'Ms.Maria'
maria.greeting()
maria.address = 'pusan'
print(maria.address)

## 출력
I'm John and 25 years old
I'm Maria and 21 years old
I'm Ms.Maria and 21 years old
pusan

 

비공개 속성과 메서드

속성과 메서드 앞에 __추가(__속성, __메서드)

비공개 속성과 메서드는 클래스 내부에서만 접근 가능하고 외부에서는 접근 불가

class Person:
    def __init__(self,name, age):
        self.name = name
        self.age = age
        self.__wallet = 10000
    def greeting(self):
        print("I'm {} and {} years old".format(self.name, self.age))
    def pay(self, price):
        self.__wallet -= price
        print(self.__wallet)

maria = Person('Maria',21)
#print(maria.__wallet) #########Error~~~~~~~~~~~~
maria.pay(3000)

## 출력
7000

'프로그래밍 > Python' 카테고리의 다른 글

함수  (0) 2020.03.13
파일 사용  (0) 2020.03.13
세트(set), 집합  (0) 2020.03.13
문자열 응용  (0) 2020.03.13
파이썬 리스트 컴프리헨션(list comprehension)  (0) 2020.03.13