Notice
Recent Posts
Recent Comments
Tags
- ViewData
- php 캐쉬제거
- XSS방어
- jquery 바코드생성
- javascript 유효성체크
- XSS PHP
- asp.net dropdownlist
- ASP.Net Core 404
- Mac Oracle
- TempData
- jquery 바코드
- 404에러페이지
- asp.net core Select
- 하드 윈도우 복사
- django 엑셀불러오기
- 타임피커
- ViewBag
- asp.net Select
- SSD 복사
- 파일업로드 유효성체크
- 맥 오라클설치
- 바코드 생성하기
- 말줄임표시
- javascript 바코드 생성
- javascript redirection
- 강제이동
- 바코드 스캔하기
- 하드 마이그레이션
- javascript 바코드스캔
- 파일업로드 체크
웹개발자의 기지개
[Python] 클래스2 - 클래스변수, 인스턴스 변수 본문
* 가상환경 설정하기
python3 -m venv 폴더명
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
class UserInfo:
# 속성, 메소드
# def __init__(self, name, height, weight, address):
def __init__(self, name):
self.name = name
#print("초기화 ", name)
def user_info_p(self):
print("Name : ", self.name)
# 인스턴스 user1
user1 = UserInfo("Kim")
print(user1.name)
user1.user_info_p()
# 인스턴스 user2
user2 = UserInfo("Park")
print(user2.name)
user2.user_info_p()
print()
print(id(user1)) # 주소값얻기 - user1 과 user2 는 주소값 서로 다르다.
print(id(user2))
print(user1.__dict__) # 네임스페이스 확인 {'name': 'Kim}
print(user2.__dict__) # 네임스페이스 확인 {'name': 'Park}
|
cs |
# Self , 클래스, 인스턴스 변수
# 클래스와 인스턴스는 구분된다. 다르다.
# 네임스페이스 : 객체를 인스턴스화 할때 저장된 공간
# 클래스 변수 : 직접 사용 가능, 객체(인스턴스)보다 먼저 생성
# 인스턴스 변수 : 객체마다 별도로 존재한다. 인스턴스 생성후 사용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class SelfTest:
def function1(): # 클래스의 메스드 (여러 인스턴스들이 함께쓰는 공유 클래스 메소드)
print('function1 called!')
def function2(self): # 인스턴스의 메소드, self 인자 있다.
print(id(self)) # 인스턴스의 주소값 확인
print('function2 called!')
self_test = SelfTest()
#self_test.function1() Error
SelfTest.function1()
self_test.function2()
print(id(self_test))
SelfTest.function2(self_test)
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
class WareHouse:
# 클래스 변수
stock_num = 0 # self 가 없으므로 모든 인스턴스에서 공유
def __init__(self,name):
self.name = name
WareHouse.stock_num += 1 # 인스턴스 생성시 +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()
print(WareHouse.__dict__) # 클래스 네임스페이스 , 클래스 변수는 공유한다.
print(user1.name)
print(user2.name)
print(user3.name)
# 자기 네임스페이스에 없으면 클래스의 네임스페이스에 찾는다. 그래로 없으면 Error
print(user1.stock_num)
del user1 # 인스턴스 메모리에서 삭제
print(user2.stock_num)
print(user3.stock_num)
|
cs |
'python > 파이썬 교육' 카테고리의 다른 글
[Python] matplotlib 실습하기 1 (0) | 2021.05.05 |
---|---|
[Python] 클래스3 - 상속 (0) | 2021.05.05 |
[Python] Pandas 2 예제 (0) | 2021.05.05 |
[python] 클래스1 (0) | 2020.06.18 |
[python] 파일 입출력 (0) | 2020.06.18 |
Comments