__getattr__ for static/class variables in python

前端 未结 5 1381
臣服心动
臣服心动 2020-11-28 07:20

I have a class like:

class MyClass:
     Foo = 1
     Bar = 2

Whenever MyClass.Foo or MyClass.Bar is invoked, I n

5条回答
  •  星月不相逢
    2020-11-28 07:46

    Depending on the case I use this pattern

    class _TheRealClass:
        def __getattr__(self, attr):
           pass
    
    LooksLikeAClass = _TheRealClass()
    

    Then you import and use it.

    from foo import LooksLikeAClass
    LooksLikeAClass.some_attribute
    

    This avoid use of metaclass, and handle some use cases.

提交回复
热议问题