function & method

2024. 7. 6. 12:26정보처리,전산/Python

반응형

함수는 독립적으로 존재하며 파라미터를 받으며 메서드느 클래스 안에 정의 되고 파라미터는 self가 들어간다.

 

메서드는 객체가 먼저 만들어진다. 실행되면 자동으로 생성되는 생성자 __init__(self), 객체가 지워질 때 자동 실행 되는 메서드 소멸자 __del__(self)가 있다. 

 

 


class Parent:
  def __init__(self): #a가 만들어지면 실행됨
    print("부모 생성자")
  def __del__(self):
    print("부모 소멸자")
  def show(self):
    print("hi")
    
class Child(Parent): #부모에게 상속받은 자식함수
  def show(self): #show 함수가 overriding 되었음
    print("bye")

a=Child()#child 객체 만들었음
a.show() #메서드실행
del a #객체 삭제

 

 

상속과 메서드 오버라이딩을 이용하여 클래스 Parent와 그로부터 상속받은 클래스 Child를 정의하고, 이를 통해 객체를 생성 및 삭제하는 과정이다. 

   - __init__(self): 생성자 메서드로, Parent 클래스의 인스턴스가 생성될 때 호출된다. "부모 생성자"라는 메시지를 출력한다.
   - __del__(self): 소멸자 메서드로, Parent 클래스의 인스턴스가 소멸될 때 호출된다. "부모 소멸자"라는 메시지를 출력한다.

 



 실행 과정
1. a = Child():
   - Child 클래스의 인스턴스를 생성한다.
   - Child 클래스의 생성자가 정의되지 않았으므로, 부모 클래스인 Parent의 생성자가 호출된다.
   -

2. a.show():
   - Child 클래스의 show 메서드를 호출한다.
   - 부모 클래스의 show 메서드가 아닌, 오버라이딩된 Child 클래스의 show 메서드가 실행된다.
   - 출력: "bye"

3. del a:
   - a 인스턴스를 삭제한다.
   - Child 클래스의 소멸자가 정의되지 않았으므로, 부모 클래스인 Parent의 소멸자가 호출된다.
   

 

반응형

'정보처리,전산 > Python' 카테고리의 다른 글

LIST 데이터 조작 index(), reverse()  (0) 2024.07.08
리스트 이중 반복문  (0) 2024.07.08
가변 매개변수  (0) 2024.07.06
IDL SHELL  (0) 2024.07.06
코드 실행 동작 속도 측정 implicitly  (0) 2024.06.30