Python:对于多个属性,使用一个 getter 和 setter 方法

Python: for multiple properties use one getter and setter method

我创建了一个具有多个属性的 class。我想为 getter 方法使用一个函数,为 setter 方法使用第二个函数。

class person:

    def __init__(self, fname, lname, city, state):
        # make all attributes as private
        self._fname = fname
        self._lname = lname
        self._city = city
        self._state = state

    @property  # get method
    def fname(self):
        return self._fname

    @fname.setter  # set method
    def fname(self,fname):
        self._fname = fname

    @property
    def lname(self):
        return self._lname

    @lname.setter
    def lname(self,lname):
        self._lname = lname

    @property
    def city(self):
        return self._city

    @city.setter
    def city(self, city):
        self._city = city

    @property
    def state(self):
        return self._state

    @state.setter
    def state(self, state):
        self._state = state  

一个get方法和一个set方法如何使用所有属性?

例如:

def get(self):
    return self._attr

def set(self,value):
    self._attr = value
class person:
    def __set_name__(self, name):
        self.name = name

    def __get__(self, obj, type=None) -> object:
        return obj.__dict__.get(self.name)

    def __set__(self, obj, value) -> None:
        obj.__dict__[self.name] = value

my_value = person
my_values.fname = 'Shivam'
my_values.lname = 'Gupta'

print(my_values.fname)  #--> Shivam
print(my_values.lname)  #--> Gupta