오늘 공부는 클래스 문법에 대해 알아보았다
class Person():
def __init__(self):
self.hello ='안녕하세요'
def greeting(self):
print(self.hello)
james = person()
james.greeting()
class Person():
Person은 클래스명을 뜻하는 것이고 클래스명은 대문자로 표현해준다!
__init__
메서드는 인스턴스를 만들때 호출되는 특별한 메서드인데 이름그대로 객체를 초기화! 하고
__init__
메서드를 사용하면 속성.self
를 사용한다.
self
의미는 인스턴스 자기자신을 뜻하기 때문에 self ==Person()
하고 같은의미.
def greeting(self)
에서 self는 james.greething()
의미하여
출력하면 안녕하세요
가 나온다.
다만
def greeting(self): def greeting(self):
print(self.hello) → print("변경되었다.")
정리
Person() 클래스가
메서드(init) 초기화
하였기에 greeting 메서드 코드에 들어가도 올바르게 출력되는 것이다.
init
메서드 대신 다른 메서드를 VS코드 터미널에서 아래와 같은 오류가 발생한다.
AttributeError: 'Person' object has no attribute 'hello'
"Person 객체에 hello특성이 없다." 라고 생각하면된다..
번외
self.hello 대신 > "변경되었다."변경해도 값은 에러 없이 출력된다.