meong_j
기록하는 습관.
meong_j
전체 방문자
오늘
어제
  • 분류 전체보기 (176)
    • 개인 공부 정리 (0)
    • 서버 운영 (37)
      • Linux (36)
    • Frontend (11)
      • Vue.js (10)
    • Backend (70)
      • Java (4)
      • Python (22)
      • Django (38)
      • Spring (6)
    • Database (5)
      • Oracle (4)
      • MySQL (1)
      • MariaDB (0)
    • Android (14)
      • Kotlin (6)
    • 배포 (9)
      • Docker (8)
      • AWS (1)
    • IT_study (29)
      • Coding test (17)
      • 알고리즘 (5)
      • 스터디 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • github

인기 글

반응형

태그

  • 코틀린자료형
  • cpu사용률
  • gabagecollecter
  • 리눅스방화벽
  • dockersecret
  • 안드로이드adaptor
  • 테크커리어
  • django
  • Proxy
  • 개발자도서
  • 배포인프라
  • SASS Variables
  • 리눅스인증
  • 중첩라우트
  • DHCP
  • router-link
  • 이차원배열정렬
  • docker
  • Kotlin
  • dp #알고리즘

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
meong_j

기록하는 습관.

파이썬 - 클래스(Class)
Backend/Python

파이썬 - 클래스(Class)

2021. 9. 16. 19:37
728x90
반응형

 

파이썬 클래스
- OOP(객체 지향 프로그래밍), 인스턴스 메소드, 인스턴스 변수
 클래스 and 인스턴스 차이 이해
- 클래스는 붕어빵틀 /인스턴스는 클래스에서 사용하는 것
- 네임스페이스 : 객체를 인스턴스화 할 때 저장하는 공간
- 클래스 변수 : 직접 접근 가능, 공유
- 인스턴스 변수 : 객체마다 별도 존재
# 예제1
class Dog: #object 상속
    #클래스 속성
    species = 'firstdog'

    #초기화/인스턴스 속성
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 클래스 정보
print(Dog)


#인스턴스화
a = Dog("mikky", 2)
b = Dog("bady", 3)
c = Dog("mikky", 2)


#비교
print(a == b, id(a), id(b), id(c))

#네임 스페이스
print('dog1', a.__dict__)
print('dog2', b.__dict__)


#인스턴스 속성 확인
print('{} is {} and {} is {}'.format(a.name, a.age, b.name, b.age))


if a.species == 'firstdog' :
    print('{0} is a {1}'.format(a.name, a.species))

print(Dog.species)
print(a.species)
print(b.species)


print()

 

 

 

 

#예제2
# self 의 이해
class SelfTest:
    def func1():
        print('Func1 called')
    def func2(self):
        print(id(self))
        print('Func2 called')


f = SelfTest()

print(dir(f))
print(id(f))
#f.func1() #예와
f.func2()


SelfTest.func1()
# SelfTest.func2() #예외
SelfTest.func2(f)


print()

 

 

 

 

 

#예제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('Lee')
user2 = Warehouse('Cho')

print(Warehouse.stock_num)
#Warehouse.stock_num = 50
print(user1.name)
print(user2.name)
print(user1.__dict__)
print('before',Warehouse.__dict__)
print('>>>',user1.__dict__)

del user1
print('after',Warehouse.__dict__)

print()

 

 

 

# 예제4
class Dog2: #object 상속
    #클래스 속성
    species = 'firstdog'

    #초기화/인스턴스 속성
    def __init__(self, name, age):
        self.name = name
        self.age = age


    def info(self):
        return '{} is {} years old'.format(self.name, self.age)

    def speak(self, sound):
        return '{} says {}!'.format(self.name, sound)

#인스턴스 생성
c = Dog2('july',4)
d = Dog2('Marry',10)
#메소드 호출
print(c.info())
print(c.speak('Wal Wal'))
print(d.speak('Mung Mung'))

반응형

'Backend > Python' 카테고리의 다른 글

파이썬 - 예외 처리(exception)  (0) 2021.09.16
파이썬 - 모듈(Module)과 패키지(Package)  (0) 2021.09.16
파이썬 함수 - functions(2)  (0) 2021.09.16
파이썬 함수 - functions(1)  (0) 2021.09.16
파이썬 흐름제어 (3) - while 문  (0) 2021.09.14
    'Backend/Python' 카테고리의 다른 글
    • 파이썬 - 예외 처리(exception)
    • 파이썬 - 모듈(Module)과 패키지(Package)
    • 파이썬 함수 - functions(2)
    • 파이썬 함수 - functions(1)
    meong_j
    meong_j
    #it #개발일기 #개발공부 #개발자 #백앤드 #생각정리 #시간은 실력에 비례한다 #뭐든지 꾸준히 열심히 #오늘의 내가 내일의 나를 만든다

    티스토리툴바