class에서 인스턴스 지정시 괄호의 역할 문의드립니다,
안녕하세요 아래와 같이 코딩을 하면 결과가 function1 called!가 나오고
[괄호 미 기입]
class SelfTest:
def function1():
print("function1 called!")
def function2(self):
print(id(self))
print("function2 called!")
f=Selftest
f.function1()
아래와 같이 코딩을 하면 오류가 나옵니다[괄호 기입]
class SelfTest:
def function1():
print("function1 called!")
def function2(self):
print(id(self))
print("function2 called!")
f=Selftest()
f.function1()
여기서 f.function2()를 코딩하면 결과값이 function2 called!로 추출됩니다.
class에서 인스턴스 지정시 괄호의 역할을 자세히 설명해주시면 정말 감사하겠습니다.
라쿠라디 님 1642
M 2020년 7월 18일 10:44 오후
1개의 답변이 있습니다. 1 / 1 Page
안녕하세요.
괄호가 있어야만 객체가 만들어 집니다. 만약 괄호가 없다면 클래스 자체를 가리키는 변수일 뿐입니다.
SelfTest 클래스의 객체를 만드는 방법은 다음과 같습니다.
a = SelfTest() # a는 SelfTest 클래스의 객체
a.function2() 를 호출할 경우에는 function2의 첫번째 매개변수 self에 생성한 객체 a가 자동으로 전달됩니다.
a.function1() 처럼 호출할 경우에는 function1에 a객체가 인수로 전달되는데 fuction1 함수에는 매개변수 self가 없으므로 오류가 발생하게 됩니다.
자세한 내용은 "점프 투 파이썬"의 클래스 챕터를 참고해 보세요.
박응용 님
2020년 7월 18일 10:50 오후