
get_called_class() 함수는 파이썬 3.x에서 추가된 함수로, __init_subclass__() 메서드와 함께 사용됩니다. 이 함수는 현재 클래스의 메소드가 호출되는 클래스를 반환합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
python
class A:
def __init_subclass__(cls):
print(f"Subclass {cls.__name__} created")
class B(A):
pass
print(get_called_class()) # B
이 코드를 실행하면 'B'라는 메시지가 출력됩니다. 하지만, get_called_class() 함수는 B가 아닌 A를 반환하는 것처럼 보인다. 그러나, 이 함수는 현재 메소드가 호출되는 클래스를 반환하는 것이지, __init_subclass__() 메서드가 호출되는 클래스를 반환하는 것이 아닙니다.
get_called_class() 함수는 __init_subclass__() 메서드가 호출되는 클래스를 반환하는 것이 아니라, 현재 메소드가 호출되는 클래스를 반환합니다. 따라서, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
python
class A:
def __init_subclass__(cls):
print(f"Subclass {cls.__name__} created")
class B(A):
def test(self):
print(get_called_class()) # B
b = B()
b.test()
이 코드를 실행하면 'B'라는 메시지가 출력됩니다. get_called_class() 함수는 현재 메소드가 호출되는 클래스를 반환하기 때문에, B를 반환합니다.
따라서, get_called_class() 함수를 정확하게 사용하려면, 현재 메소드가 호출되는 클래스를 반환하는 것을 이해해야 합니다. __init_subclass__() 메서드는 클래스가 상속되었을 때 호출되는 메서드이므로, get_called_class() 함수는 __init_subclass__() 메서드가 호출되는 클래스를 반환하는 것이 아닙니다.
2025-05-26 16:46