STUDY/Python

파이썬 객체지향(클래스, 인스턴스, 상속)

sinawi95 2021. 1. 5. 17:53
728x90
#Person를 부모 클래스로 Male, Female 자식 클래스를 정의하는 코드를 작성하십시오.
#"Unknown"을 반환하는 Person 클래스의 getGender 메서드를 
class Person:
    def __init__(self):
        pass
    def getGender(self):
        return "Unknown"
    
#Male 클래스와 Female 클래스는 "Male", "Female" 값을 반환하는 메서드로 오버라이딩합니다.
class Male(Person):
    def __init__(self):
        pass
    def getGender(self):
        return "Male"

class Female(Person):
    def __init__(self):
        pass
    def getGender(self):
        return "Female"
    
print(Male().getGender())
print(Female().getGender())

 

클래스와 메서드에 괄호를 치는 것은 어떤 차이가 있을까?

1. "Male().getGender()"로 설정하면 "Male"  출력

- 원하는 값을 얻는다

2. "Male().getGender" 로 설정하면 <bound method Male.getGender of <__main__.Male object at 0x00007f1569bb2950>> 출력 

3. "Male.getGender()" 로 설정하면 에러 출력

-

4. "Male.getGender" 로 설정하면 <function Male.getGender at 0x00007f778470c020>출력

4.1. "Male"을 찍으면 <class '__main__.Male'>을 출력한다.