클래스의 인스턴스 접근
class SelfTest:
# 클래스 변수
name = "test"
def __init__(self, x):
# 인스턴스 변수
self.x = x
@classmethod
def func1(cls):
print(f"cls:{cls}")
print("func1")
def func2(self):
print(f"self:{self}")
print("클래스 안의 self주소:", id(self))
print("func2")
test_obj = SelfTest(18)
print(SelfTest(test_obj).x)
SelfTest.func2(test_obj)
<__main__.SelfTest object at 0x1053afaf0>
self:<__main__.SelfTest object at 0x1053afaf0>
클래스 안의 self주소: 4382718704
func2
인스턴스의 클래스 접근
class SelfTest:
# 클래스 변수
name = "test"
def __init__(self, x):
# 인스턴스 변수
self.x = x
@classmethod
def func1(cls):
print(f"cls:{cls}")
print("func1")
def func2(self):
print(f"self:{self}")
print("클래스 안의 self주소:", id(self))
print("func2")
test_obj = SelfTest(18)
test_obj.func1()
print(test_obj.name)
cls:<class '__main__.SelfTest'>
func1
test
클래스에서 인스턴스 자원에 접근할 때 하나의 클래스가 여러개의 인스턴스를 가질 수 있기 때문에 특정 인스턴스를 지정해야한다.
인스턴스에서는 내장변수를 통해 자신의 클래스에 접근할 수 있고 자신의 클래스는 한개 이기때문에 지정하지 않아도 접근이 가능하다.