Dev_Python

[Python] 클래스 예제

최선을 다하자! 2023. 9. 21. 11:54
# 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() # 메서드 참조 가능