객체 지향 프로그래밍
클래스의 예
클래스 추상 템플릿입니다
클래스 학생 (객체) : 패스class
즉시 클래스 이름 뒤에가, 즉Student
, 클래스 이름은 보통 다음에 대문자 단어의 시작이며(object)
,
클래스 아래에서 상속 클래스를 대표하는, 우리 뒤에 상속의 개념은, 그 반복
일반적으로, 더 적합한 상속 클래스를 사용하면object
모든 클래스는 결국 클래스를 상속입니다 클래스,
클래스의 인스턴스를 생성하는 것은 이름 +에 의해 이루어집니다 ()
바트 = >>> 학생 ()는 >>> 바트 < __main__ 0x10a67a590 AT .Student 개체> #은 동일하지 않은 점 바트 학생 0x10a67a590 뒤의 예는, 각각의 메모리 어드레스에 대한 메모리 어드레스의 일례를 나타내는 > >> 학생 < 클래스 ' __main에서 __. 학생 ' >
이러한 경우 바트 속성에 이름을 바인딩 등의 속성을 바인딩 인스턴스 변수를 줄 무료
>>> bart.name 용 = ' 바트 심슨 ' >>> bart.name ' 바트 심슨 '
우리는 재산의 일부가 입력해야 할 필수 바인딩되어야한다고 생각합니다. 특별한 정의함으로써 __init__
방법을
클래스 학생 (객체) DEF __init__ (자기, 이름, 점수) : self.name = 이름 self.score = 점수
참고 : 특별한 방법 "__init__"이전과 이후 두 개의 밑줄이 있습니다! !
주목 __init__
첫 번째 인수는 항상 self
자체가 인스턴스가 만들어으로, 따라서 표현에, __init__
내부 방법, 우리는 바인딩되는 재산의 모든 종류를 넣을 수 self
있기 때문에, self
그 자체의 인스턴스를 생성 지적한다.
와 __init__
방법, 시간에 인스턴스를 생성, 당신은 당신이 통과해야 널 매개 변수를 전달할 수 없습니다 __init__
매개 변수 매칭 방법을하지만, self
자신이 인스턴스 변수로 전달됩니다 통역, 파이썬을 통과 할 필요가 없습니다 :
데이터 캡슐화
클래스 학생 (객체) : DEF __init__ (자기, 이름, 점수) : self.name = 이름 self.score = 점수가 DEF print_score (자동) : 인쇄 ( ' % S : % S ' % 합니다 (self.name, self.score )) 첫번째 파라미터에 추가하는 방법을 정의하는 외부 자기 및 다른 통상의 함수이다. 메소드를 호출하려면, 당신은 단지 자기가 통과하지뿐만 아니라, 인스턴스 변수를 직접 호출 할 필요가 다른 일반 매개 변수가 전달 :
액세스 제한
클래스 내 및 특성을 갖는 방법 및 헤이 방법은 내부 로직의 동작의 복잡성을 숨기는 내부 외부 코드 감기 인스턴스 변수 일 수 제공 할
그러나, 클래스 학생의 전면 뷰의 정의, 외부 코드는 이름의 한 예를 자유롭게 변경할 수 있습니다, 점수 속성
당신이 내부 속성은 외부에서 액세스 할 수없는 원한다면, 당신은 재산을 더한 두 개의 밑줄의 이름 앞에 넣을 수 있습니다 __
, 파이썬에서, 인스턴스 변수의 이름을 경우 __
시작, 그것은 개인 변수 (개인)되고 , 만 내부 액세스, 외부하지 액세스, 우리는 학생 카테고리를 변경 할 수 있습니다 :
클래스 학생 (객체) : 데프 __init__ (자기, 이름, 점수) : 자기. __name = 이름 자체. __score = 점수 데프 print_score (자기) : 인쇄 ( ' % S : % S ' . % (자기 __name . 자기 __score ))
그 주, 파이썬에서 변수 이름은 비슷합니다 __xxx__
, 그것은 이중 밑줄, 이중 밑줄로 시작하고 끝으로, 특별한 변수, 직접 액세스 할 수있는 특별한 변수 private 변수가 있으므로, 사용하실 수 없습니다하지 __name__
, __score__
그래서 변수 이름.