register

Published by onesixx on

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.

Categories: Python Basic

onesixx

Blog Owner

Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x