더북(TheBook)

코드 6-13 oop1/oop1_2/class_Person.py ②

if __name__= ="__main__":
    g = Person('greg', 5000) #5
    j = Person('john', 2000)

    g.show()
    j.show()

    g.give_money(j, 2000) #6
    print('')

    g.show()
    j.show()

실행결과 greg : 5000
john : 2000

greg : 3000
john : 4000


클래스 Person의 인스턴스를 만든 다음(#5) Person() 안에 이름과 돈을 전달하면 클래스의 __init__() 함수가 호출되면서 객체의 멤버를 초기화합니다. greg 객체가 john 객체에게 give_money() 메서드로 돈을 전달합니다(#6). 실행 결과를 보면 앞에서 만든 코드 6-11과 같습니다. 여기서 주목할 점은 코드 6-11에서는 함수를 호출할 때 첫 번째 인자로 함수를 호출하는 객체를 전달했는데, 이번 코드에서는 전달하지 않았다는 점입니다. 그 이유는 인스턴스 메서드를 호출하면 객체가 자동으로 첫 번째 인자인 self로 객체 자신을 전달하기 때문입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.