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가 없으므로 오류가 발생하게 됩니다.

자세한 내용은 "점프 투 파이썬"의 클래스 챕터를 참고해 보세요.

https://wikidocs.net/28

박응용

2020년 7월 18일 10:50 오후