@@ -1004,47 +1004,50 @@ here is a pure Python equivalent:
10041004 if doc is None and fget is not None:
10051005 doc = fget.__doc__
10061006 self.__doc__ = doc
1007- self._name = ''
1007+ self.__name__ = None
10081008
10091009 def __set_name__(self, owner, name):
1010- self._name = name
1010+ self.__name__ = name
10111011
10121012 def __get__(self, obj, objtype=None):
10131013 if obj is None:
10141014 return self
10151015 if self.fget is None:
10161016 raise AttributeError(
1017- f'property {self._name!r} of {type(obj).__name__!r} object has no getter'
1017+ f'property {self.__name__!r} of {type(obj).__name__!r} '
1018+ 'object has no getter'
10181019 )
10191020 return self.fget(obj)
10201021
10211022 def __set__(self, obj, value):
10221023 if self.fset is None:
10231024 raise AttributeError(
1024- f'property {self._name!r} of {type(obj).__name__!r} object has no setter'
1025+ f'property {self.__name__!r} of {type(obj).__name__!r} '
1026+ 'object has no setter'
10251027 )
10261028 self.fset(obj, value)
10271029
10281030 def __delete__(self, obj):
10291031 if self.fdel is None:
10301032 raise AttributeError(
1031- f'property {self._name!r} of {type(obj).__name__!r} object has no deleter'
1033+ f'property {self.__name__!r} of {type(obj).__name__!r} '
1034+ 'object has no deleter'
10321035 )
10331036 self.fdel(obj)
10341037
10351038 def getter(self, fget):
10361039 prop = type(self)(fget, self.fset, self.fdel, self.__doc__)
1037- prop._name = self._name
1040+ prop.__name__ = self.__name__
10381041 return prop
10391042
10401043 def setter(self, fset):
10411044 prop = type(self)(self.fget, fset, self.fdel, self.__doc__)
1042- prop._name = self._name
1045+ prop.__name__ = self.__name__
10431046 return prop
10441047
10451048 def deleter(self, fdel):
10461049 prop = type(self)(self.fget, self.fset, fdel, self.__doc__)
1047- prop._name = self._name
1050+ prop.__name__ = self.__name__
10481051 return prop
10491052
10501053.. testcode ::
0 commit comments