속성체력,마나,물리공격력,주문력
메서드 -지르기 배기
클래스와 메서드 만들기
class 클래스 이름:
def 메서드(self):
코드
class Person:
def greeting(self):
print('Hello')
### 클래스와 메서드 만들기
다음과 같이 클래스에 ()괄호를 붙인 뒤 변수에 할당함
-인스턴스 =클래스()
james =person()
person 으로 변수 james를 만들었는대 이 james가
peson의 인스턴스 임
-클래스는 특정 개념을 표현만 할 뿐 사용하려면 인스턴스를 생성해야 함
매서드 호출하기
매서드는 클래스가 아니라 인스턴스를 통해 호출함
-인스턴스.매서드()
james.greeting()
hello
인스턴스를 통해 호출하는 메서드를 인스턴스 메서드라고 부름
속성 사용하기
속성을 만들떄는 __init__ 매서드 안에서 self.속성에 값을 할당
class 클래스이름:
def__init__(self):
self.속성 = 값
class Person:
def __init__(self):
self.hello = '안녕'
def greeting(self):
print(self.hello)
james = person()
james.greeting()
안녕하세요
인스턴스를 만들때 값 받기
class 클래스이름:
def __init__(self, 매개변수1, 매개변수2):
self.속성1 = 매개변수1
self.속성2 = 매개변수2
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) # 서울시 서초구 반포동
안녕하세요. 저는 마리아입니다.
이름: 마리아
나이: 20
주소: 서울시 서초구 반포동
비공개 속성 사용하기
비공개 속성은 __속성과 같이 이름이__로 시작해야함
단,__속성__처럼 밑줄 두 개가 양 옆에 왔을 떄는 비공개 속성이 아니므로 주의해야함
class 클래스 이름:
def__init__(self,매개변수)
self.__속성 = 값
class Person:
def __init__(self, name, age, address, wallet):
self.name = name
self.age = age
self.address = address
self.__wallet = wallet # 변수 앞에 __를 붙여서 비공개 속성으로 만듦
maria = Person('마리아', 20, '서울시 서초구 반포동', 10000)
maria.__wallet -= 10000 # 클래스 바깥에서 비공개 속성에 접근하면 에러가 발생함
Traceback (most recent call last):
File "C:\project\class_private_attribute_error.py", line 9, in <module>
maria.__wallet -= 10000 # 클래스 바깥에서 비공개 속성에 접근하면 에러가 발생함
AttributeError: 'Person' object has no attribute '__wallet'
비공개 속성은 클래스 안의 매서드에서만 접근할 수 있음
중요한 값인데 바깥에서 함부로 바구면 안될 떄 바공개 속성을 주로 사용함
비공개 속성을 바꾸는 경우는 클래스이 매서드로 한정함
class Person:
def __init__(self, name, age, address, wallet):
self.name = name
self.age = age
self.address = address
self.__wallet = wallet # 변수 앞에 __를 붙여서 비공개 속성으로 만듦
def pay(self, amount):
self.__wallet -= amount # 비공개 속성은 클래스 안의 메서드에서만 접근할 수 있음
print('이제 {0}원 남았네요.'.format(self.__wallet))
maria = Person('마리아', 20, '서울시 서초구 반포동', 10000)
maria.pay(3000)