[ python] class

ljkgb·2021년 1월 27일
0

Python

목록 보기
8/20
post-thumbnail

1. 클래스

1) dog라는 클래스 생성방법(클래스 네임은 주로 대문자로 시작)

  • class Dog:
  • class Dog():
  • class Dog(object):

2) 클래스
(1) 네임 스페이스: 객체를 인스턴스 할 때 저장된 공간
(2) 클래스 변수: 직접 접근 가능 = 공유 값
(3)인스턴스 변수: 객체마다 별도로 존재

  • Dog라는 클래스 생성
  • 클래스 속성 지정 = 클래스 공유값
    class Dog:  
        species = 'firstdog'
  • 모든 클래스는 초기화/ 이스턴스 속성을 가짐 = 인스턴스의 고유의 값
        def __init__(self, name, age):
            self.name = name
            self.age = age
  • 인스턴스화
    a = Dog("mikky", 2)
    b = Dog("baby", 3)
  • 네임 스페이스
    print('Dog1', a.__dict__)   #Dog1 {'name': 'mikky', 'age': 2}
    print('Dog2', b.__dict__)   #Dog2 {'name': 'baby', 'age': 3}
  • 인스턴스 속성 확인
    print('{} is {} and {} is {}'.format(a.name, a.age, b.name, b.age))
-  결과: mikky is 2 and baby is 3
  • 클래스 속성 확인
    print(Dog.species)   #firstdog
    print(a.species)     #firstdog
    print(b.species)     #firstdog

3) self의 이해

class selftest:
    def func1():    #self 없음
        print('func1 called')
    def func2(self):    #self 있음
        print('func2 called')
  • self 없음: 클래스 메소드

    f.func1() 이렇게 호출할 수 없음
    selftest.func() 클래스로 직접호출만 가능(매개변수 없어서)

  • self 붙음: 인스턴스 메소드

    f.func2() 인스턴스로 호출 가능
    selftest.func(f) 인스턴스 넘겨주고 호출 가능

profile
🐹

0개의 댓글