Python 배워보기 - 클래스

####클래스를 이용하여 간단한 장비관리를 구현해보자

앞서 잔 코드는 매니져님의 도움을 많이 받아 작성되어, 내가 한번 짜보자는 느낌으로 새로 만들어보았다.

근대 코드가 비슷하게 만들어지는건 어쩔수 없나보다.

class Inventory(): #인벤토리
    def __init__(self, name):
		self.name = 'inventory'
		self.item_list= []

    def buy_item(self, item):
		if item in self.item_list:
		    a = input('아이템이 있습니다. 구매하시겠습니까? (y/n)') 
		    if a == 'y':
			self.item_list.append(item)
			print(f'{item.item_name}을 중복 구매하셨습니다.')
				#y,n인풋을 받아 중복된  아이템이 있으면 구매전에 물어본다.
		    else :
			    print('구매를 취소하셨습니다.')
		else :
			self.item_list.append(item)
			print('아이템을 구매하셨습니다.')
    def sell_item(self, item):
		if item in self.item_list:
		    self.item_list.remove(item)
		    print(f'{item.item_name}을 쓰래기통에 버렸습니다.')
		else :
		    print('없는 아이템 입니다.')
	    
    @property
    def info(self):
		print(
		       '상태\n'
		      f'소지중인 장비 : {[i.item_name for i in self.item_list]}'
		     )

class items(): #아이템
    ITEM_LIST = ['sword','ammor']
    
    def __init__(self,item_name):
		if item_name in self.ITEM_LIST:
		    self.item_name = item_name
		else :
		    print(f'{item_name}은(는) 존재하는 아이템이 아닙니다.')
		    	#ITEM_LIST에 없는 아이템은 등록이 불가능하다
		    
		self.location = None
		is_equiped_var =None
	
    @property
    def is_equiped(self) :
	
		if self.is_equiped_var == False:
		    print('이미 장착중입니다.')
		elif self.is_equiped_var == True:
		    print('장착가능합니다.')
		else : 
		    print('아이템이 없음')
    @property
    def info(self):
		print(f'아이템 이름 : {self.item_name}\n')

class Equipment(): #장비

    def __init__(self, name):
		self.name = name
		self.equiped_item = []
	
    def equip_item(self,inventory, item):
		if item in self.equiped_item:
		    print ('이미 장착중인 아이템입니다.')
		else:
		    inventory.item_list.remove(item)
		    self.equiped_item.append(item)
		    items.location = self.name
		    items.is_equiped_var = False
		    print (f'{self.name}이 {item.item_name}을/를 장착했습니다.')
	    
    def unequip_item(self, inventory, item):
		if item in self.equiped_item:
		    self.equiped_item.remove(item)
		    inventory.item_list.append(item)
		    items.location = inventory.name
		    items.is_equiped_var = True
		    print (f'{self.name}이 {item.item_name}을/를 가방에 넣었습니다.')
		else:
		    print ('아이템이 없습니다.')
    
    @property
    def info(self):
		print (f'ID: {self.name}\n장착아이템 : {[i.item_name for i in self.equiped_item]}')

마크다운 들여쓰기는 어떻게하는지 모르겠다.

파이썬은 특히 들여쓰기가 잘못되면 오류를 뿜어내던대 들여쓰기방법을 좀더 찾아봐야 할거 같다. ​