프로세스 지향 프로그래밍은 컴퓨터 프로그램을 일련의 명령 집합, 즉 일련의 기능을 순차적으로 실행하는 것으로 간주합니다. 프로그래밍을 단순화하기 위해 프로세스 중심 기능을 계속해서 하위 기능으로 분할합니다. 즉, 시스템의 복잡성을 줄이기 위해 큰 기능을 작은 기능으로 분할합니다.
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
2. 캡슐화, 상속 및 다형성
객체지향 프로그래밍의 중요한 기능입니다. 데이터 캡슐화입니다. 위 예시의 이름 및 점수와 마찬가지로 클래스 내부에 정의된 함수를 통해 직접 액세스할 수 있습니다. 예를 들어 데이터 조각을 추가하거나 목록을 정렬할 수 있지만 어떤 내용인지는 알 수 없습니다. 내부 조정 방법에 의해 달성됩니다.
상속의 장점은 상위 클래스의 모든 기능을 얻을 수 있다는 점입니다. 하위 클래스의 경우 상위 클래스를 기반으로 계속 작성할 수 있어 더욱 편리합니다
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!