register
register()
메서드는 일반적으로 클래스나 함수를 레지스트리에 등록하는 데 사용됩니다. 이는 주로 플러그인 시스템이나 확장 가능한 시스템에서 사용되며, 특정 클래스나 함수를 동적으로 로드하거나 호출할 수 있게 합니다.
class Registry:
def __init__(self):
self._registry = {}
def register(self, name=None):
def decorator(cls):
reg_name = name if name else cls.__name__
self._registry[reg_name] = cls
return cls
return decorator
def get(self, name):
return self._registry.get(name)
# 레지스트리 객체 생성
DATA_TRANSFORMATIONS = Registry()
# 클래스 등록
@DATA_TRANSFORMATIONS.register()
class LogScaleDataTransformation(BaseDataTransformation):
pass
# 등록된 클래스 가져오기
cls = DATA_TRANSFORMATIONS.get('LogScaleDataTransformation')
print(cls) # <class '__main__.LogScaleDataTransformation'>
rosie/utils/registry.py : create class Registry
rosie/builders.py : create Registry object
rosie/databundle/transformation/z_score.py : register a class to the Registry object
configs/baselines/../sixx.yaml.