2018 - 09 - 06 데 이 14 - 클래스 와 대상

5682 단어
1. 이론 적 인 정의:
클래스: 같은 기능 과 속성 을 가 진 대상 의 집합 입 니 다.(추상) 대상: 클래스 의 인 스 턴 스 (구체 적)
2. 삶 의 관점 에서
사람 이라는 종이 한 종류 라면, 모든 사람 이 하나의 대상 이다.
3. 프로 그래 밍 방식
프로 세 스 프로 그래 밍: 알고리즘 을 도구 함수 식 프로 그래 밍: 함 수 를 도구 로 대상 프로 그래 밍: 클래스 와 대상 을 도구 로 (생활 지향)
클래스: 같은 기능 (방법) 과 같은 속성 을 가 진 패키지.패 키 징 효과: 한 클래스 에서 여러 기능 을 패 키 징 할 수 있 습 니 다 (여러 함수).여러 속성 봉인
클래스 성명 형식
class   (    ):
    """      """
        

class: 성명 류 의 키워드 입 니 다.클래스 이름: 식별 자, 키워드 일 수 없습니다.이니셜 은 대문자 로 써 야 합 니 다!낙타 봉 식 으로 명명 하 다.Student System.(낙타 봉 식 이름: 첫 번 째 단어 이니셜 소문 자, 다른 단어의 이니셜 대문자) 부류 목록: 이 부분 은 절약 할 수 있 습 니 다.이것 은 계승 문법 으로 많이 계승 할 수 있다.클래스 의 내용: 클래스 의 방법 과 속성.
유형 중의 방법
호출 방식: 대상, 함수 명 () 방법: 클래스 에 있 는 함수 방법 분류: 대상 방법, 클래스 방법, 정적 방법 을 설명 하 는 것 입 니 다.클래스 에 직접 쓰 는 방법, self 매개 변수 대상 을 가 져 오 는 방법: 대상 을 통 해 호출 합 니 다.
3. 구조 방법
  • 구조 방법: 시스템 이 자동 으로 생 성 되 고 방법 명 은 유형 명 과 같 습 니 다.대상 을 만 드 는 데 사용 합 니 다.
  • _init_:방법의 기능 은 대상 속성 을 초기 화하 고 추가 하 는 데 쓰 인 다.
  • 우리 가 구조 방법 을 통 해 대상 을 만 들 때 시스템 은 init 방법 을 자동 으로 호출 합 니 다.
  • 만약 에 유형의 init 방법 에 매개 변수 가 있 으 면 구조 방법 에 전 참 됩 니 다.

  • 4. 창설 대상
    클래스 를 만 들 때 시스템 은 기본적으로 이 클래스 에 대응 하 는 구조 방법 을 만 듭 니 다 (방법 명 은 클래스 이름과 같 습 니 다).한 종 류 는 여러 개의 대상 이 있 을 수 있 고 구조 방법 을 호출 하면 새로운 대상 이 생 긴 다.
  • 구조 방법: 클래스 이름 () -- > 클래스 에 대응 하 는 대상 만 들 기
  • 대상 호출 대상 방법 을 통 해 기본 매개 변수 self 는 전 참 할 필요 가 없습니다.
  • 대상 을 만 드 는 과정: 구조 방법 을 사용 하여 메모리 에 공간 을 열 어 대상 을 만 든 다음 에 새 대상 으로 init 방법 으로 대상 의 속성 을 초기 화하 고 마지막 에 대상 을 되 돌려 줍 니 다.
  • class Person:
        """
          
        """
        def eat(self):
            print('   ')
    #  Person    ,           p1 
    p1 = Person()  
    p1.eat()
    

    5. 대상 속성
    1. 속성
    대상 의 속성: 대상 에 따라 대응 하 는 값 이 다 를 수 있 습 니 다. 이러한 속성 은 대상 속성 입 니 다.대상 클래스 에 속 하 는 대상 속성 은 init 방법 에 설명 되 어 있 습 니 다.
  • 성명 형식 은 self. 속성 명 = 초기 값
  • 입 니 다.
  • 대상 의 사용: 대상. 속성 명
  •    
    class Student:
        """   """
        def __init__(self):
            #       name,age,id
            self.name = '  '
            self.age = 0
            self.id = '001'
    stu1 = Student()
    print(stu1.name,stu1.age,stu1.id)
    #            
    stu1.name = '  '
    print(stu1.name)
    
       
    class Dog:
        """  """
        def __init__(self, type1, color1):
            self.type = type1
            self.color = color1
    dog1 = Dog('  ','  ')
    print(dog1.type, dog1.color)
    
       
    class Computer:
        """   """
        def __init__(self, color='  ', memory=0):
            self.color = color
            self.memory = memory
    com1 = Computer()
    print(com1.color,com1.memory)
    

    클래스 의 필드 (속성): 클래스 에 속 하고 모든 대상 이 대응 하 는 값 은 같 습 니 다.
    2. 속성의 첨삭 검사
    python 은 동적 언어 입 니 다. python 의 대상 속성 은 추가 삭제 와 검 사 를 할 수 있 습 니 다.
  • 검색 방법 1: 대상. 속성 명 (상용) 방법 2: getattr (대상, 속성 명, default = None) 속성 이 존재 하지 않 습 니 다. 기본 값 을 설정 하여 프로그램 이 무 너 지지 않도록 하고 기본 값 을 되 돌려 줍 니 다.방법 3: 대상.getattribute_(속성 명)
  • 변경 방법 1: 대상. 속성 = 새 값 (상용) 방법 2: setattr (대상, 속성 명, 값) 방법 3: 대상.setattr_(속성 명, 값)
  • 증가 방법 1: 대상. 속성 = 새 값 (속성 이 존재 하지 않 으 면 추가) 방법 2: setattr (대상, 속성 명, 값) 방법 3: 대상.setattr_(속성 명, 값)
  • 삭제 방법 1: del 대상. 속성 방법 2: delattr (대상, 속성) 방법 3: 대상.delattr_(속성)
  • 6. 클래스 의 속성 (필드)
    1. 클래스 의 필드: 클래스 안에 있 는 방법 을 설명 하 는 외부 변수 입 니 다.
    class Person:
      #  number      
      number = 6
    

    2. 언제 클래스 의 속성 을 설명 합 니까? 클래스 에 속 하고 클래스 의 모든 대상 에 게 공유 합 니 다.
    3 、 어떻게 사용
    print(Person.number)
    

    7. 대상 방법
  • 클래스 에 있 는 함수 의 기본 값 은 대상 방법 이 고 기본 매개 변수 self
  • 가 있 습 니 다.
  • 대상 방법 은 대상 을 통 해 호출 해 야 한다. 대상 방법
  • 대상 방법 에서 기본 매개 변수 self 는 인삼 을 전달 할 필요 가 없습니다.이 방법 을 호출 할 때 시스템 은 자동 으로 현재 대상 이 self 에 게 전달 되 기 때문이다.
  • 대상 이 호출 되면 self 는 누 구 를 가리킨다.대상 이 할 수 있 는 일 은 self 도 할 수 있 고 본질 적 으로 같다
  • 연습:
    # 1、      ,      ,  :      
    class Rect:
        def __init__(self, width, weight):
            self.width = width
            self.weight = weight
        def perimeter(self):
            print('   :',(self.weight + self.width)*2)
        def area(self):
            print('   :',(self.width*self.weight))
    rect1 = Rect(3,4)
    rect1.perimeter()
    rect1.area()
    
       : 14
       : 12
    
    #2、      ,            ,          
    class Class_python:
        def __init__(self,*score):
            self.score = score
        def score_max(self):
            a = list(self.score)
            a.sort()
            print('    :%d'%a[-1])
    class1 = Class_python(2,3,4,5,23,43,32,)
    class1.score_max()
    
        :43
    

    여덟 가지 방법
    성명 형식: 성명 방법 전에 @ classmethod 설명 을 사용 해 야 합 니 다.특징: 기본 매개 변수 cls 를 가 져 옵 니 다. 이 매개 변 수 는 호출 할 때 값 을 전달 할 필요 가 없습니다.시스템 자동 전송 값, 누가 누 구 를 가리 키 는 지 호출 합 니 다.(클래스 만 호출 될 수 있 기 때문에 현재 클래스 를 가리 키 고 있 습 니 다) 호출: 클래스 를 통 해 호출 합 니 다 -- > 클래스. 클래스 방법 ()
    class Class1:
        #        
        def class2(self):
            print('        ')
        #       
        @classmethod
        def class_func(cls):
            print('       ')
    

    9. 정적 방법
    성명 형식: 성명 방법 전에 @ staticmethod 설명 을 사용 해 야 합 니 다.특징: 기본 매개 변수 호출 없 음: 현재 클래스 를 통 해 -- > 클래스 를 호출 합 니 다. 정적 방법 ()
        @staticmethod
        def static_func():
            print('        ')
      
    c1 = Class1()
    c1.static_func()
    

    10. 어떻게 세 가지 방법 을 선택 합 니까?
    a. 방법의 기능 을 실현 하려 면 대상 의 속성 을 사용 해 야 합 니 다. 우 리 는 대상 방법 을 사용 합 니 다.그렇지 않 으 면 정적 방법 이나 클래스 방법 을 사용 합 니 다.b. 대상 방법 을 사용 하지 않 는 전제 에서 기능 을 실현 하려 면 클래스 의 필드 를 사용 해 야 한다 면 클래스 방법 을 사용한다.c. 실현 기능 은 대상 의 속성 도 필요 없고 클래스 의 필드 도 필요 없 으 면 정적 방법 을 사용 합 니 다.주의: 정적 방법 과 유형 방법 구분 은 그렇게 엄격 하지 않 습 니 다. 정적 방법 이 할 수 있 고 유형 방법 도 사용 할 수 있 기 때 문 입 니 다.반대로 도 마찬가지다.

    좋은 웹페이지 즐겨찾기