-
14. Class공부합시다!/python 2023. 2. 10. 00:15728x90
함수의 모음 Class
Class를 사용함으로서 함수들의 모아서 재사용할 수 있게 되었지요!
# 1. 클래스 선언 및 self의 이해 # 1.1. 클래스 선언 # 1.2. 클래스 네임스페이스 self # 1.3. 클래스, 인스턴스 변수 # 1.4. self # 선언 : 첫글자 대문자, 단어연결시 첫글자 대문자 ''' class 클래스명: 함수 함수 함수 ''' # 예제 1 pass 예외처리됨 class UserInfo: def __init__(self, name): self.name = name def user_info_p(self): print("NAME: ", self.name) user1 = UserInfo("Kim") print(user1.name) user1.user_info_p() user2 = UserInfo("Park") print(user2.name) user2.user_info_p() #메모리 번지 확인 print(id(user1)) print(id(user2)) #namespace 출력 print(user1.__dict__) print(user2.__dict__) # 클래스, 인스턴스 차이 중요 # 네임스페이스: 객체를 인스턴스화 할 때 저장된 공간 # 클래스 변수: 직접 사용가능, 객체보다 먼저 생성 # 인스턴스 변수: 객체마다 별도로 존재 # 예제2 # self의 이해 class SelfTest: def function1(): print('function1 called') def function2(self): print(id(self)) print('function2 called') self_test = SelfTest() #self_test.function1() self_test.function2() #인스턴스 생성해서 메쏘드 호출 SelfTest.function1() SelfTest.function2(self_test) # 클래스에서 직접 호출 print(id(self_test)) # 예제 3 # 클래스 변수 class WareHouse: stock_num = 0 def __init__(self, name): self.name = name WareHouse.stock_num += 1 def __del__(self): WareHouse.stock_num -= 1 user1 = WareHouse('Kim') user2 = WareHouse('Park') user3 = WareHouse('Lee') print(user1.__dict__) print(user2.__dict__) print(user3.__dict__) print(WareHouse.__dict__) # 클래스 네임스페이스, 클래스 변수 (공유) print(user1.name) print(user2.name) print(user3.name) print(user1.stock_num) del user1 print(user2.stock_num) print(user3.stock_num)
728x90'공부합시다! > python' 카테고리의 다른 글
16. Module과 Package (0) 2023.02.14 15. Class 상속 (0) 2023.02.13 13. DB: DB data 다루기 - 2 (0) 2023.02.08 13. DB: DB data 다루기 - 1 (0) 2023.02.07 12. DB: database 및 table 다루기 (0) 2023.02.06