객체지향 프로그래밍은 단순히 클래스와 객체의 사용을 기반으로 합니다. 모든 코드는 클래스와 객체를 통해 구현됩니다.
객체 지향의 세 가지 주요 기능: 캡슐화, 상속, 다형성
먼저 클래스를 만듭니다
#使用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 중국어 웹사이트의 기타 관련 기사를 참조하세요!