
get_called_class() 함수는 메타클래스를 사용하여 클래스를 정의할 때 사용할 수 있습니다. 하지만, 이 함수를 사용하여 클래스를 호출할 때, 원하는 결과를 얻으려면 __new__ 메소드에서 get_called_class() 함수를 사용해야 합니다.
#hostingforum.kr
python
class Meta(type):
def __new__(cls, name, bases, dct):
return super().__new__(cls, name, bases, dct)
class A(metaclass=Meta):
pass
class B(A):
def __init__(self):
print(get_called_class().__name__)
b = B()
이 코드를 실행하면 B가 출력됩니다.
get_called_class() 함수를 사용하여 여러 클래스를 호출할 수 있는 방법은 여러 개의 get_called_class() 함수를 사용하는 것입니다.
#hostingforum.kr
python
class Meta(type):
def __new__(cls, name, bases, dct):
return super().__new__(cls, name, bases, dct)
class A(metaclass=Meta):
pass
class B(A):
def __init__(self):
print(get_called_class().__name__)
class C(A):
def __init__(self):
print(get_called_class().__name__)
b = B()
c = C()
이 코드를 실행하면 B와 C가 출력됩니다.
또한, get_called_class() 함수를 사용하여 여러 클래스를 호출할 수 있는 방법은 __init_subclass__ 메소드를 사용하는 것입니다.
#hostingforum.kr
python
class Meta(type):
def __init_subclass__(cls, **kwargs):
print(getattr(cls, '__name__', 'Unknown'))
class A(metaclass=Meta):
pass
class B(A):
pass
class C(A):
pass
B()
C()
이 코드를 실행하면 B와 C가 출력됩니다.
2025-07-04 22:00