코드 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로 객체 자신을 전달하기 때문입니다.