如何在getter方法中获取属性名称?

问题描述 投票:0回答:1

我正在使用其getter和setter函数创建许多动态属性。我如何在其吸气剂中得到名称hello

class Foo:
    __hello = 'This is hello'
    __data = {'a': 'alpha', 'b': 'beta', 'c': 'gamma'}

    @property
    def hello(self):
        return self.__hello

    @hello.setter
    def hello_getter(self, value):
        self.__hello = value

    def __get(self):
        # Something like this where key is the attribute name.
        # return self.__data.get(key)
        pass

    def __set(self):
        for item in self.__data.items():
            key, value = item
            setattr(self, key, value)
            setattr(eval(self.__class__.__name__), key, property(self.__class__.__get))  # This line set each attribute to the getter method.
python getter-setter
1个回答
-1
投票

在声明self__hello时应使用__data

self.__hello = 'This is hello'
self.__data = {'a': 'alpha', 'b': 'beta', 'c': 'gamma'}
© www.soinside.com 2019 - 2024. All rights reserved.