# class
# 일반 함수 방식
scv1 = {"atk" : 3, "def" : 5, "hp" : 50}
scv2 = {"atk" : 8, "def" : 5, "hp" : 50}
def attack1(dic1):
print("{}의 공격을 가함" .format(dic1["atk"]))
def defense(dic1):
print("{}의 데미지를 방어".format(dic1["def"]))
dic1["hp"] -= 1
attack1(scv1)
defense(scv1)
print(scv1)
attack1(scv2)
defense(scv2)
defense(scv2)
print(scv2)
print("-----------------------------------------------------")
# class
class SCV : # 클래스 생성 # 빵틀 생성
def __int__(self):
self.state = {"atk" : 5, "def" : 3, "hp" : 50 } #속성 #멤버변수
state = {"atk" : 5, "def" : 3, "hp" : 50 } # state 변수 생성
def attack2(self): # 함수 생성
print("{}의 공격을 가함".format(self.state["atk"])) # self의 state라는 애를 참조하겠다.
def defense2(self): # 함수 생성
print("{}의 데미지를 방어".format(self.state["def"])) # self의 state라는 애를 참조하겠다.
self.state["hp"] -= 1 # self의 state라는 hp값을 -1 하겠다.
def get_state(self): # 함수 생성
print(self.state)
# 빵틀 활용
scv3 = SCV() # 클래스 사용하기 # 객체선언(생성)
scv3.attack2()
scv3.defense2()
scv3.get_state()
print()
scv4 = SCV() # 클래스 사용하기 # 객체선언(생성)
scv4.defense2()
scv4.defense2()
scv4.get_state()
# class
a = 10
print(type(a))
b = "abc"
print(type(b))
# 클래스에서 가져오는 메서드...
print(b.format(a)) # b.format 은 메서드다.
class Class1: # 클래스명은 명사형
def set_data(self): # self는 자기자신을 나타낸다. # 객체의 나 자신. # 객체 내부에서 사용할
# property
self.aaa = 1
self.bbb = "abc"
def get_data(self): # 정상접근방법
print(self.aaa) # 나 자신을 타겟팅함.
print(self.bbb)
def get_total_state(self):
print(self.aaa)
print(self.bbb)
print("----------------get data를 사용한 케이스--------------")
self.get_data() # 메서드 참조
var1 = Class1()
var1.set_data()
var1.get_data()
var1.get_total_state() # 메서드 참조 가능
'언어 > Python' 카테고리의 다른 글
[Python] init 예제 (0) | 2023.09.21 |
---|---|
[Python] 클래스 - 접근제어 예제 (0) | 2023.09.21 |
[Python] 클래스 - self (0) | 2023.09.21 |
[python] 사용자 정의 함수 (0) | 2023.09.20 |
[python] 함수 예제 (0) | 2023.09.19 |