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

Python의 OOP

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

수업이란 무엇입니까?

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

예를 들어 고객 정보를 가져오려는 은행 직원의 경우tails 온라인으로 갈 것입니다 고객 클래스, 여기서 transaction de와 같은 모든 속성은tails, 출금 및 입금tails, 미결제 부채 등이 나열됩니다.

Python 클래스를 정의하는 방법

클래스를 정의하려면 다음을 고려해야 합니다.wing 전철기

단계 1) 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 클래스 정의

주의사항: Python에서 "self"를 사용하는 방법

  • 자기논증은 대상 자체를 가리킨다. 그러므로 자기라는 단어를 사용합니다. 따라서 이 메서드 내에서 self는 작업 중인 이 개체의 특정 인스턴스를 참조합니다.
  • Self는 Python에서 인스턴스 메서드의 첫 번째 매개 변수를 나타내기 위해 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) 팔로우를 실행하세요.wing 암호

# 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 생성자

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

그것은 다음으로 시작됩니다. double 밑줄(_). __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에 오신 것을 환영합니다, 알렉스

파이썬 2 예

위 코드는 Python 3 예제입니다. Python 2에서 실행하려면 다음을 고려하세요.wing 암호.

# 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 클래스는 키워드로 정의됩니다. "수업" 그 자체
  • 클래스 내부에서는 클래스의 일부인 함수나 메서드를 정의할 수 있습니다.
  • 함수, 루프, if 문 등의 코드와 마찬가지로 클래스의 모든 내용은 들여쓰기되어 있습니다.
  • Python의 self 인수는 객체 자체를 나타냅니다. Self는 Python에서 인스턴스 메서드의 첫 번째 매개 변수를 나타내기 위해 Python에서 규칙에 따라 선호하는 이름입니다.
  • Python 런타임은 의도적으로 제공했는지 여부에 관계없이 인스턴스에서 인스턴스 메서드를 호출할 때 "self" 값을 자동으로 전달합니다.
  • Python에서 클래스는 하위 클래스 또는 상속 클래스라는 다른 클래스로부터 속성과 동작 메서드를 상속받을 수 있습니다.