클래스_Dog예제 & Self예제 관련
안녕하세요, 저도 정말 초보이지만, 혹시나 해서 답변 달아봅니다.질문해주신 Dog 클래스에서, a.species는 작동을 하셨다는 것으로 유추해보면,Dog 클래스의 인스턴스명이 a 라고 생각되는데요.class Dog : species = 'firstdog' def __init__(self, name, age): self.name = name self.age = age위 코드에서, species는 클래스의 변수(attribute)여서 클래스에 해당되는 모든 인스턴스에 적용됩니다.즉, Dog 클래스의 공통적인 특징을 변수 자리에 적어주시면 될 것 같습니다.따라서 a.species를 하면, 'firstdog'이 출력될 것 같구요.class SelfTest(): def func1(): print('func1 called') def func2(self): print('func2 called')위 코드에서 func1과 2의 차이는 (self) 의 여부, 즉 인스턴스를 받을 수 있냐 없냐의 차이입니다.self는 인스턴스(Dog 클래스 경우에서 a)를 의미하는데, func1()의 경우 self가 없으므로,b = SelfTest()라고 인스턴스를 b라고 이름지었을 때, b가 SelfTest 클래스에서 self에 해당되므로, 인스턴스(self)가 들어갈 수 있는 func2가 실행되어 'func2 called'가 출력될 것입니다.func1을 실행하시려면SelfTest.func1()라고 코딩하시면, 클래스의 함수로서 직접 실행될 것이고, func2를 실행하시려면SelfTest.func2(b) 또는 b.func2()라고 호출하시면 될 것 같습니다. 답변이 두서없었네요. 핵심은 self = 인스턴스다 !! 입니다.