Merge pull request #4893 from nicoddemus/simplify-obj-property

Simplify 'obj' property definition in PyobjMixin
This commit is contained in:
Bruno Oliveira 2019-03-08 02:04:28 -03:00 committed by GitHub
commit 03ef546706
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 16 deletions

View File

@ -243,8 +243,9 @@ class PyobjMixin(PyobjContext):
def __init__(self, *k, **kw):
super(PyobjMixin, self).__init__(*k, **kw)
def obj():
def fget(self):
@property
def obj(self):
"""Underlying Python object."""
obj = getattr(self, "_obj", None)
if obj is None:
self._obj = obj = self._getobj()
@ -254,14 +255,12 @@ class PyobjMixin(PyobjContext):
self.own_markers.extend(get_unpacked_marks(self.obj))
return obj
def fset(self, value):
@obj.setter
def obj(self, value):
self._obj = value
return property(fget, fset, None, "underlying python object")
obj = obj()
def _getobj(self):
"""Gets the underlying Python object. May be overwritten by subclasses."""
return getattr(self.parent.obj, self.name)
def getmodpath(self, stopatmodule=True, includemodule=False):