self.list = QListWidget()과 list = QListWidget()의 차이는 인스턴스 변수와 로컬 변수 간의 차이입니다. 이를 통해 변수의 범위(scope) 및 객체의 접근성이 달라집니다. 구체적으로 차이점을 설명하겠습니다.
1. self.list = QListWidget()
- **인스턴스 변수(instance variable)**입니다.
- self는 해당 클래스의 인스턴스를 나타내며, self.list는 클래스 인스턴스에서 접근 가능한 변수입니다.
- 이 방식으로 생성된 QListWidget 객체는 해당 클래스 내의 다른 메서드에서도 self.list를 통해 접근할 수 있습니다.
- 예를 들어, QMainWindow나 QWidget을 상속받는 클래스에서 self.list로 생성한 위젯은 클래스 내부의 다른 메서드에서 계속 사용될 수 있습니다.
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.list = QListWidget() # 인스턴스 변수로 리스트 위젯 생성
def add_items(self):
self.list.addItem("Item 1") # 인스턴스 변수를 사용하여 다른 메서드에서도 접근 가능
2. list = QListWidget()
- **로컬 변수(local variable)**입니다.
- list는 해당 메서드 내에서만 유효한 일시적인 변수로, 메서드가 끝날 때 자동으로 소멸됩니다.
- 메서드 내에서만 접근 가능하며, 다른 메서드에서 이 변수에 접근할 수 없습니다.
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
list = QListWidget() # 로컬 변수로 리스트 위젯 생성
def add_items(self):
list.addItem("Item 1") # 오류 발생! 다른 메서드에서 list에 접근할 수 없음
따라서 클래스 내에서 여러 메서드가 공유해야 하는 객체는 self.list와 같이 인스턴스 변수로 선언하는 것이 바람직합니다.
카페 게시글
Python
객체
self.list = QListWidget() 와 list = QListWidget() 의 차이점
주인장
추천 0
조회 2
24.09.23 11:26
댓글 0
다음검색