> 백엔드 개발 > 파이썬 튜토리얼 > 파이썬으로 객체지향 프로그래밍을 하는 방법

파이썬으로 객체지향 프로그래밍을 하는 방법

silencement
풀어 주다: 2019-06-24 11:19:05
원래의
3010명이 탐색했습니다.

파이썬으로 객체지향 프로그래밍을 하는 방법

객체지향 프로그래밍은 단순히 클래스와 객체의 사용을 기반으로 합니다. 모든 코드는 클래스와 객체를 통해 구현됩니다.

객체 지향의 세 가지 주요 기능: 캡슐화, 상속, 다형성

먼저 클래스를 만듭니다

#使用class创建一个School类,类中有个student方法
class School:
    def student(self):
        pass
a1=School()
로그인 후 복사

1. 캡슐화

1. 캡슐화: 특정 내용을 먼저 한 곳에 캡슐화하고 필요할 때까지 기다립니다.

class School:    def __init__(self,name,age):    #构造方法,创建对象是执行
        self.name=name
        self.age=age#创建对象a1,a2a1=School("zhangsan",18)
a2=School("lisi",18)
로그인 후 복사

위의 코드는 각각의 이름과 나이를 self의 이름과 나이 속성으로 캡슐화하는 기능을 구현합니다. 이는 클래스에 정의된 함수를 메서드라고 합니다. with __init__은 생성자라고 불리며 a1 및 a2 객체를 생성할 때 자동으로 실행됩니다.

2. 호출 방법에는 객체를 통한 직접 호출과 self를 통한 간접 호출이 있습니다

객체를 통한 직접 호출

class School:    def __init__(self,name,age):
        self.name=name
        self.age=age    def student(self):        print("name:%s,age:%s"%(self.name,self.age))#创建对象a1,a2a1=School("zhangsan",18)
a2=School("lisi",18)
print a1.name,a1.age
print a2.name,a2.age#执行结果: zhangsan 18
      lisi 18
로그인 후 복사

self를 통한 간접 호출

class School:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def student(self):
        print("name:%s,age:%s"%(self.name,self.age))
#创建对象a1,a2
a1=School("zhangsan",18)
a2=School("lisi",18)

#执行类中的方法时,通过self间接调用被封装的内容
a1.student()
a2.student()
#执行结果:
#name:zhangsan,age:18
#name:lisi,age:18
로그인 후 복사

2 상속: 둘 다. 파생 클래스(하위 클래스)는 기본 클래스(부모 클래스)의 메서드를 상속할 수 있습니다. 여러 클래스에 공통적인 메서드를 부모 클래스로 추출할 수 있으므로 하위 클래스는 각 메서드를 하나씩 구현할 필요 없이 부모 클래스만 상속하면 됩니다. by one

클래스 이름에 다음 괄호 안에 다른 클래스를 작성하여 해당 클래스를 상속했음을 나타냅니다

class School:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def student(self):
        print("name:%s,age:%s"%(self.name,self.age))
    def classroom(self):
        print("%s去教室"%self.name)

class SchoolA(School):  #SchoolA继承School
    def __init__(self,name):
        self.name=name

class SchoolB(SchoolA): #SchoolB继承SchoolA
    def __init__(self,name):
        self.name=name
#创建对象a1
a1=SchoolA("zhangsan")
a1.classroom()
#创建对象a2
a2=SchoolB("lisi")
a2.classroom()

#执行结果:
#   zhangsan去教室
#   lisi去教室
로그인 후 복사

위 코드에서 SchoolA와 SchoolB에는 교실 메소드가 없지만 SchoolB가 SchoolA를 상속하므로 , SchoolA는 School을 상속하므로 객체를 생성한 후 모두 School에서 교실 메서드를 호출할 수 있습니다.

2. 다중 상속

파이썬에서는 여러 클래스를 상속할 수도 있습니다. 클래스에서 함수를 검색하는 방법에는 두 가지가 있습니다.

깊이 우선: 클래스가 클래식 클래스인 경우 다중 In 상속의 경우 깊이 우선 방식으로 검색됩니다

폭 우선: 클래스가 새로운 스타일 클래스인 경우 다중 상속의 경우 너비 우선 방식으로 검색됩니다

(python3.x에서) 기본값은 너비 우선이지만 여전히 수행할 수 있습니다. 두 가지 새 스타일 클래스의 차이점을 이해합니다. 현재 클래스 또는 기본 클래스가 객체 클래스를 상속하는 경우 이를 새 스타일이라고 합니다. 그렇지 않으면 그것은 고전적인 수업입니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿