강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

bbqdlsgy님의 프로필 이미지
bbqdlsgy

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

Python: 클래스와 객체 - 1

27분 45초 질문드립니다

해결된 질문

작성

·

36

0

image.png

제가 코드 작성을 틀리지 않았다면 수업 내용 중 a.add('apple') 했을 때, 대문자로 들어가있지 않습니다.

맞게하려면 어떻게 해야할까요?

답변 1

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요,

 

2가지 문제가 보입니다.

  • 코드 상에 보시면 인스턴스 변수에 shared가 없습니다.

  • 클래스 변수를 출력하고 싶으셨다면 a.personal이 아니라 Bag.shared를 출력하셔야 합니다.

 

어떤 것을 정확히 의도하신 지는 모르겠으나

인스턴스 변수에는 없는 것을 추가하고, 클래스 변수는 출력하지 않고 계십니다.

 

대문자만 추가된 클래스 변수를 의도하신 거라면, 아래 코드를 참고하세요.

class Bag:

    shared = []  # class 변수

    def __init__(self):
        self.personal = []

    def add(self, item):
        Bag.shared.append(item.upper())

a = Bag()
b = Bag()

a.add('apple')
print(Bag.shared)

 

출력값:

['APPLE']

bbqdlsgy님의 프로필 이미지
bbqdlsgy
질문자

정확히는 a.personal[0]을 확인해보고 싶어서 코드 한 줄씩 출력하고 있었습니다. 인스턴스 변수 (a)에 'apple'을 추가한 후 바로 a를 확인하는 것은 안되는 것인가요?

주말코딩님의 프로필 이미지
주말코딩
지식공유자

인스턴스 변수인 리스트에 추가하고 싶으시다는 말씀이실까요?

그럼 self.personal에 추가하셔야 합니다. 지금 전혀 다른 곳에 추가하고 계십니다.

bbqdlsgy님의 프로필 이미지
bbqdlsgy

작성한 질문수

질문하기