리스트에 요소를 추가하고, 삭제하고, 화면에 표시하는 작업을 클래스 기반으로 구현하려면 객체 지향 프로그래밍(OOP) 방식을 활용하는 것이 좋습니다. 이 방식에서는 하나의 클래스를 정의하고 그 안에 속성과 메서드를 선언합니다. 그런 다음 클래스의 인스턴스(객체)를 생성하여, 각 메서드를 통해 리스트에 요소를 추가하거나 삭제하거나 전체 목록을 출력할 수 있습니다.
아래 예제를 통해 실제 동작 과정을 살펴보겠습니다.
예제 코드
class list_class():
def __init__(self):
self.n = []
def add_val(self, a):
return self.n.append(a)
def remove_val(self, b):
self.n.remove(b)
def display_val(self):
return (self.n)
my_instance = list_class()
choice_val = 1
while choice_val != 0:
print("0. Exit")
print("1. Add elements")
print("2. Delete element")
print("3. Display list")
choice_val = int(input("Enter your choice: "))
if choice_val == 1:
n = int(input("Enter element to add to the list... "))
my_instance.add_val(n)
print("List: ", my_instance.display_val())
elif choice_val == 2:
n = int(input("Enter number to delete.."))
my_instance.remove_val(n)
print("List: ", my_instance.display_val())
elif choice_val == 3:
print("List: ", my_instance.display_val())
elif choice_val == 0:
print("Exit")
else:
print("Invalid choice!")
print()실행 결과
0. Exit 1. Add elements 2. Delete element 3. Display list Enter your choice: 1 Enter element to add to the list... 34 List: [34] 0. Exit 1. Add elements 2. Delete element 3. Display list Enter your choice: 3 List: [34] 0. Exit 1. Add elements 2. Delete element 3. Display list Enter your choice: 2 Enter number to delete..34 List: [] 0. Exit 1. Add elements 2. Delete element 3. Display list Enter your choice: 0 Exit
코드 설명
- 'list_class'라는 이름의 클래스를 정의하며, 이 클래스에는 'add_val', 'remove_val', 'display_val' 세 가지 메서드가 포함되어 있습니다.
- 'add_val'은 리스트에 새로운 요소를 추가하고, 'remove_val'은 특정 요소를 삭제하며, 'display_val'은 현재 리스트의 내용을 반환합니다.
- 생성자(__init__)에서는 빈 리스트를 초기화하여 인스턴스마다 독립적인 리스트를 가지도록 합니다.
- 클래스의 인스턴스인 'my_instance'를 생성한 후, 사용자 입력을 받아 각 메서드를 호출하는 방식으로 동작합니다.
- while 루프와 조건문을 사용해 사용자가 메뉴 번호를 선택하면 해당 연산이 수행되고, 결과가 콘솔에 출력됩니다.
- 사용자가 '0'을 입력하면 프로그램이 종료되며, 잘못된 값을 입력하면 "Invalid choice!"라는 오류 메시지가 표시됩니다.
이처럼 클래스를 활용하면 리스트 관련 연산을 하나의 객체로 캡슐화할 수 있어 코드의 재사용성과 유지보수성이 크게 향상됩니다. 필요에 따라 검색, 정렬, 개수 확인 등의 메서드를 추가하여 기능을 확장할 수도 있습니다.