클래스와 인스턴스, 메서드 사용
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 |