Python OOP: 클래스, 객체, 상속 및 생성자(예제 포함)

OOP Python

OOP Python 다른 일반 프로그래밍 언어와 마찬가지로 객체와 클래스를 사용하는 데 중점을 둔 프로그래밍 접근 방식입니다. 객체는 실제 엔터티일 수 있습니다. Python 개발자는 코드 재사용성에 중점을 두고 OOP 접근 방식을 사용하여 애플리케이션을 개발할 수 있습니다. 클래스와 객체를 생성하는 것은 매우 쉽습니다. Python.

수업이란 무엇입니까?

A 클래스 Python 데이터와 기능을 논리적으로 그룹화한 것입니다. 임의의 콘텐츠가 포함되어 있어 쉽게 액세스할 수 있는 데이터 구조를 자유롭게 만들 수 있습니다.

예를 들어, 온라인에서 고객 정보를 가져오려는 은행 직원은 다음으로 이동합니다. 고객 클래스거래 내역, 출금 및 입금 내역, 미지불 채무 등 모든 속성이 나열됩니다.

정의하는 방법 Python 수업

클래스를 정의하려면 다음 사항을 고려해야 합니다.

단계 1) In Python, 클래스는 다음에 의해 정의됩니다. "수업" 키워드는

class myClass():

단계 2) 클래스 내에서 이 클래스의 일부인 함수나 메서드를 정의할 수 있습니다.

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • 여기서는 "Guru1"를 인쇄하는 method99을 정의했습니다.
  • 우리가 정의한 또 다른 방법은 “Software Testing”+ SomeString을 인쇄하는 method2입니다. SomeString은 호출 메서드에서 제공하는 변수입니다.

단계 3) 함수, 루프, if 문 등의 코드와 마찬가지로 클래스의 모든 내용은 들여쓰기되어 있습니다. 들여쓰기되지 않은 내용은 클래스에 포함되지 않습니다.

밝히다 Python 수업

주의사항: "self" 사용에 대해 Python

  • self 인수는 객체 자체를 참조합니다. 따라서 self라는 단어를 사용합니다. 따라서 이 메서드 내부에서 self는 작동 중인 이 객체의 특정 인스턴스를 참조합니다.
  • Self는 관례에서 선호하는 이름입니다. Pythons는 인스턴스 메소드의 첫 번째 매개변수를 나타냅니다. Python. 그것은의 일부입니다 Python 객체의 멤버에 액세스하는 구문

단계 4) 클래스의 객체를 만들려면

c = myClass()

단계 5) 클래스에서 메서드를 호출하려면

c.method1()
    c.method2(" Testing is fun")
  • method1이나 method2를 호출할 때 self 키워드를 제공할 필요가 없다는 점에 유의하세요. 이는 자동으로 우리를 위해 처리됩니다. Python 실행 시간.
  • Python 런타임은 의도적으로 제공했는지 여부에 관계없이 인스턴스에서 인스턴스 메서드를 호출할 때 "self" 값을 전달합니다.
  • 당신은 비자기 주장에 관심을 가져야합니다.

단계 6) 다음은 완전한 코드입니다.

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  def method2(self,someString):    
      print("Software Testing:" + someString)
  
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()

상속의 작동 방식

상속은 객체 지향 프로그래밍에 사용되는 기능입니다. 이는 기존 클래스를 거의 또는 전혀 수정하지 않고 새 클래스를 정의하는 것을 의미합니다. 새로운 클래스의 이름은 파생 클래스 그리고 그것이 물려받은 것으로부터 기지. Python 상속을 지원합니다. 그것은 또한 지원합니다 다중 상속. 클래스는 하위 클래스 또는 상속 클래스라는 다른 클래스로부터 속성과 동작 메서드를 상속받을 수 있습니다.

밝히다 Python 수업

Python 상속 구문

class DerivedClass(BaseClass):
    body_of_derived_class

단계 1) 다음 코드를 실행하세요

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print ("childClass Method1")
        
  def method2(self):
        print("childClass method2")     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

childClass에서 method1은 정의되지 않았지만 상위 myClass에서 파생되었습니다. 출력은 "Guru99"입니다.

단계 2) 라인 # 8 & 10의 주석 처리를 제거하십시오. 코드를 실행하십시오.

이제 메소드 1이 childClass에 정의되고 출력 "childClass Method1"이 올바르게 표시됩니다.

단계 3) 9번 줄의 주석을 해제하세요. 코드 실행

다음 구문을 사용하여 상위 클래스의 메서드를 호출할 수 있습니다.

ParentClassName.MethodName(self)

우리의 경우 myClass.method1(self)를 호출하고 Guru99가 예상대로 인쇄됩니다.

4단계) 19번 줄의 주석을 해제하세요. 코드를 실행하세요.

하위 클래스의 메소드 2가 호출되고 "childClass method2"가 예상대로 인쇄됩니다.

Python 생성자

생성자는 객체를 미리 정의된 값으로 인스턴스화하는 클래스 함수입니다.

이는 이중 밑줄(_)로 시작합니다. __init__() 메서드

아래 예에서는 생성자를 사용하여 사용자의 이름을 사용합니다.

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

출력은 다음과 같습니다.

Guru99에 오신 것을 환영합니다, 알렉스

Python 2 예

위의 코드는 Python 3가지 예, 실행하고 싶다면 Python 2 다음 코드를 고려해 보세요.

# How to define Python classes
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
  def method2(self,someString):    
      print "Software Testing:" + someString
      
   
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()


#How Inheritance works
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
      
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print "childClass Method1" 
        
  def method2(self):
        print "childClass method2"     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

다음 튜토리얼을 알아보세요 다형성 Python

요약

"클래스"는 기능과 데이터의 논리적 그룹입니다. Python 클래스는 객체 지향 프로그래밍의 모든 표준 기능을 제공합니다.

  • 클래스 상속 메커니즘
  • 기본 클래스의 모든 메서드를 재정의하는 파생 클래스
  • 메서드는 동일한 이름을 가진 기본 클래스의 메서드를 호출할 수 있습니다.
  • Python 클래스는 키워드로 정의됩니다. "수업" 그 자체
  • 클래스 내부에서는 클래스의 일부인 함수나 메서드를 정의할 수 있습니다.
  • 함수, 루프, if 문 등의 코드와 마찬가지로 클래스의 모든 내용은 들여쓰기되어 있습니다.
  • 자기 주장 Python 사물 자체를 가리킨다. Self는 관례에서 선호하는 이름입니다. Pythons는 인스턴스 메소드의 첫 번째 매개변수를 나타냅니다. Python
  • Python 런타임은 의도적으로 제공했는지 여부에 관계없이 인스턴스에서 인스턴스 메서드를 호출할 때 "self" 값을 자동으로 전달합니다.
  • In Python, 클래스는 하위 클래스 또는 상속 클래스라는 다른 클래스로부터 속성과 동작 메서드를 상속받을 수 있습니다.