2019-02-22 2-15 11-oop 베이스

2069 단어
제2장 문법 기초
수업 시간
1. 클래스와 대상의 구성원 분석
  • 클래스와 대상은 모두 구성원을 저장할 수 있고 구성원은 소유로 분류할 수도 있고 대상에 귀속할 수도 있다
  • 구성원의 속성은 클래스 실례의 속성을 직접 가리킨다.구성원도 자신의 속성을 사용자 정의할 수 있다
  • #  
    class A():
        name = "name"
        age = 18
    print(id(A.name))
    print(id(A.age))
    a1 = A()
    print(id(a1.name))
    print(id(a1.age))
    a2 = A()
    a2.name = "name2"
    a2.age = 16
    print(id(a2.name))
    print(id(a2.age))
    print(a1.__dict__)
    print(a2.__dict__)
    #  
    139985056652176
    94112357273344
    139985056652176
    94112357273344
    139984802844264
    94112357273280
    {}
    {'name': 'name2', 'age': 16}
    

    2. 관련self
  • 클래스 자체의 속성을 호출하기 위해 "class"를 사용합니다
  • #  
    class A():
        name = "name"
        age = 18
        def intr(i):
            i.name = "NM"
            i.age = 11
            print(i.name)
            print(i.age)
        def intr2():
            print("Good night!")
            print(__class__.name)
            print(__class__.age)
    intro = A()
    intro.intr()
    A.intr2()
    ###  
    NM
    11
    name
    18
    Good night!
    

    3. 대상을 향한 세 가지 특성
  • 봉인: 대상의 구성원에 대한 접근 제한 a) 세 가지 단계: 공개:public 보호된:protected 개인:private
  • #  
    class person():
        name = "NM"
        __age = "18"
    p = person()
    print(p.name)
    print(person.__dict__)
    print(p._person__age)
    print(p.__age)
    #  
    NM
    {'__module__': '__main__', 'name': 'NM', '_person__age': '18', '__dict__': , '__weakref__': , '__doc__': None}
    18
    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
     in ()
          5 print(p.name)
          6 print(person.__dict__)
    ----> 7 print(p.__age)
    
    AttributeError: 'person' object has no attribute '__age'
    

    b) 판별 대상의 위치 대상 내부, 대상 외부, 하위 클래스 중
  • 상속
  • 다태
  • 좋은 웹페이지 즐겨찾기