>  기사  >  백엔드 개발  >  [파이썬 학습] 객체지향 프로그래밍

[파이썬 학습] 객체지향 프로그래밍

little bottle
little bottle앞으로
2019-04-09 09:27:352162검색

프로세스 지향 프로그래밍은 컴퓨터 프로그램을 일련의 명령 집합, 즉 일련의 기능을 순차적으로 실행하는 것으로 간주합니다. 프로그래밍을 단순화하기 위해 프로세스 중심 기능을 계속해서 하위 기능으로 분할합니다. 즉, 시스템의 복잡성을 줄이기 위해 큰 기능을 작은 기능으로 분할합니다.

Python과 Java는 모두 객체 지향 언어입니다. 객체지향 프로그래밍의 특징데이터 캡슐화, 상속 및 다형성
1. 클래스와 인스턴스
객체지향 프로그래밍의 가장 중요한 개념은 클래스와 인스턴스라는 점을 기억해야 합니다. , 인스턴스는 클래스를 기반으로 생성된 특정 "객체"입니다. 각 객체는 동일한 메서드를 가지지만 해당 데이터는 다를 수 있습니다.
Python에서 클래스 키워드는 클래스를 정의하는 데에도 사용됩니다. 클래스 뒤에는 클래스 이름이 옵니다. 클래스 이름 뒤의 괄호는 상속받는 클래스, 즉 상위 클래스를 나타냅니다.

class Student(object):
    pass

이 변수

>>>nick.name = 'Liu Ling Hao'
>>>nick.name
'Liu Ling Hao'

에 속성을 자유롭게 바인딩할 수 있으며 나중에 정의되는 다른 함수는 메서드입니다. 정리하자면, Object = Attribute + Method 클래스는 템플릿의 역할을 할 수 있기 때문에, 인스턴스를 생성할 때 바인딩해야 한다고 생각하는 일부 속성을 강제로 채울 수 있습니다. 이때 좀 더 특별한 __init__ 메소드를 사용해야 합니다. (int 앞뒤에 두 개의 밑줄이 있습니다.) __init__ 메서드의 첫 번째 매개 변수는 항상 생성된 인스턴스 자체를 나타내는 self입니다.

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = scor
>>> bart = Student('Bart Simpson', 59)
>>> bart.name
'Bart Simpson'
>>> bart.score
59

__init__ 메소드가 있으면 인스턴스 생성 시 빈 매개변수를 전달할 수 없습니다. __init__ 메소드와 일치하는 매개변수를 전달해야 합니다.

2. 캡슐화, 상속 및 다형성
객체지향 프로그래밍의 중요한 기능입니다. 데이터 캡슐화입니다. 위 예시의 이름 및 점수와 마찬가지로 클래스 내부에 정의된 함수를 통해 직접 액세스할 수 있습니다. 예를 들어 데이터 조각을 추가하거나 목록을 정렬할 수 있지만 어떤 내용인지는 알 수 없습니다. 내부 조정 방법에 의해 달성됩니다.

클래스를 정의하면 기존 클래스에서 상속할 수 있습니다. 새 클래스를 하위 클래스(Subclass)라고 하며 상속된 클래스를 기본 클래스, 상위 클래스 또는 슈퍼 클래스(Base 클래스)라고 합니다. 수업).

상속의 장점은 상위 클래스의 모든 기능을 얻을 수 있다는 점입니다. 하위 클래스의 경우 상위 클래스를 기반으로 계속 작성할 수 있어 더욱 편리합니다
class Person(object):
    def idea(self):
        print('study is happy')class Liu(Person):
    pass
liu =Liu()liu.idea

study is happy

물론 하위 클래스에 상위 클래스와 동일한 메소드를 사용하면 상위 클래스의

다형성을 자동으로 재정의합니다. 서로 다른 객체는 동일한 메소드에 대해 서로 다른 작업에 응답합니다

>>>class Nick1:
    def name(self):
          	 print("我是1")
>>>class Nick2:
    def name(self):
    		 print("我是2") 
>>>a = Nick1()
>>>b = Nick2()
>>>a.name
我是1
>>>b.name
我是2

사용된 함수 이름은 동일하지만 구현은 다릅니다.

def run(animal):
    animal.run()
    animal.run()
    >>> run(Animal())
Animal is running...
Animal is running...
>>> run_twice(Dog())
Dog is running...
Dog is running...

다형성의 장점은 Dog나 다른 동물을 전달해야 할 때 Dog는 모두 Animal 유형이므로 Animal 유형만 전달받은 다음 Animal 유형에 따라 작동하면 된다는 것입니다. Animal 유형에는 run() 메소드가 있으므로 전달된 모든 유형이 Animal 클래스이거나 하위 클래스인 한 자동으로 실제 유형의 run() 메소드를 호출합니다. 이것이 다형성입니다.

【추천 강좌:

Python 동영상 튜토리얼

위 내용은 [파이썬 학습] 객체지향 프로그래밍의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제