파이썬 참고 : 객체 지향

기본 이론

객체는 무엇인가

모든 것은 객체이다

객체는 특정 것들

  • 속성, 행동을 가지고
  • 많은 흩어져 것들, 전체 패키지

파이썬에서 모든 (OOP) 객체가, 파이썬은 객체 지향 프로그래밍의 특히 철저한 언어이다

많은 다른 프로그래밍 언어도, 원시 타입과 객체 유형 포인트 파이썬 만 개체 형식 동안

&는 객체 지향 프로세스 지향적

둘 다 문제 해결 아이디어, 생각,있는 객체 지향 자체는 프로세스 중심의 패키지

  • 프로세스 중심은 : 문제를 해결에 관심이 모든 과정의 문제 (단계)를 해결하는 것입니다
    • 부문의 단계를 따릅니다
    • 작업은 특정의 각 단계로 분해 넣어
  • 객체 지향은 : 문제를 해결에 관심이 문제의 객체를 해결하기 위해 필요
    • 기능적 개체별로 구분
    • 속성 및 객체의 행동을 결정하는 개체를 찾기
  • 어떻게 객체 프로세스 중심면에서 :
    • 작업 단계 목록
    • 및 객체 분리 단계 기능 블록
    • 기능 코드는 특정 개체로 분할
    • 특정 객체의 행동과, 기반 추출물

범주

클래스는 무엇인가

추상 클래스는 객체의 기능의 특정 클래스

클래스의 역할

추상 클래스, 특정 객체의 생성

클래스의 구성

이름, 속성, 메서드

참고 :

  • 속성 및 방법은 추상적 인 개념이다
  • 오브젝트를 생성 한 후, 객체는 특정 속성 값과 달성하는 수단을 구비

오브젝트와 클래스 간의 관계

개체 - 초록 - 클래스

클래스 - 예 중 - 객체

클래스의 정의

클래식 정의 :

class 类名:
    ......

객체를 생성

obj = 类名()

기본 작업을 할 때 객체를 생성 :

  • 먼저 메모리에 일부 공간을 엽니 다 (메모리를 차지합니다 클래스를 정의)
  • 클래스 변수를 통해 클래스 이름을 가져옵니다 :xxx.__name__
  • 객체를 통해 클래스를 돌려 :xxx.__class__

재산권 관련

속성 및 변수의 차이

개념 :

  • 변수 : 값이 변경 될 수있다
  • 속성입니다 : 객체의 특성이다

액세스 :

  • 변수 : 범위에 따라 서로 다른 액세스 권한이 있습니다
  • 등록 정보 : 당신은 단지 객체를 통해 액세스 할 수 있습니다
    • 객체가 변수에 의해 참조되는, 범위는 권한이

판단에 근거 :

  • 호스트는이 있는지 여부

추가 속성

  1. 직접 객체를 통해 동적 추가
    • 구문 :对象.属性 = 值
  2. 클래스에 의해 초기화 방법 (생성자)
    • __init__()

속성이 추가 된 특성 값을 저장하는 메모리 공간을 열어,이 값은 오브젝트 공간에 저장되는 객체 참조 변수

액세스 속성

직접 对象.属性액세스

파이썬은 제공 __dict__속성이 지금이 객체의 속성이 모두 포함 된 사전이다

등록 정보를 수정

수정 속성 값 :对象.属性 = 值

삭제 재산

del 对象.属性

클래스 속성

클래스 속성을 증가 :

  • 类名.属性 = 值
  • 클래스에서 직접 쓰기 属性 = 值

보기 클래스 속성 :

  • 类名.属性
  • 클래스 속성은 또한 객체를 통해 액세스 할 수 있습니다 :对象.类属性
  • 속성 검색 메커니즘을 객체 :
    • 개체 자체에 우선 순위 끝을 찾아 속성을 찾을 수
    • 찾을 수없는 경우에 따른 __class__재산이 클래스에 대한 클래스에 해당하는 객체 모습을 찾을 수

수정 클래스 속성 :

  • 클래스 이름으로 수정 된 항목 :类名.属性 = 值
  • 对象.__class__.属性 = 值
  • 참고 : 개체를 통해 직접 수정할 수 없습니다! 对象.属性 = xxx문법 개체의 속성을 속성을 증가 및 수정

모든 클래스 속성보기 :类名.__dict__

클래스 속성을 제거합니다 :

  • del 类名.属性
  • 객체 델은 직접 속성의 객체를 삭제할 수 있습니다, 삭제할 수 없습니다

메모리 저장 문제 클래스 속성 :

  • 등록 정보가 사전에 저장되어,이 사전은 수 진짜 __dict__액세스 할 수
  • 类.__dict__그것은 읽기 전용 속성입니다
  • 요약 :
    • 일반적으로, 속성에 저장됩니다 __dict__사전, 일부는 내장이 속성이없는 객체
    • 직접 일반 객체 수정할 수있는 __dict__속성을
    • 그러나 객체의 클래스는 __dict__읽기 전용, 기본적으로 수정할 수 없습니다이며, 않은 setattr에 의해 수정 될 수 있습니다

각 개체 클래스의 속성은 공유 :

관련

추천

출처www.cnblogs.com/wbytts/p/12229979.html