homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients Darren.Dale, benjamin.peterson, daniel.urban, dsdale24, eric.araujo, michael.foord, ncoghlan, stutzbach
Date 2011年06月11日.12:55:16
SpamBayes Score 3.54406e-05
Marked as misclassified No
Message-id <1307796917.62.0.113519414273.issue11610@psf.upfronthosting.co.za>
In-reply-to
Content
inspect.getattr_static has the necessary logic to search for descriptors without invoking them.
However, it may be better to revert to the idea of pushing this functionality back onto the individual descriptors and have the problematic descriptors like property and staticmethod simply implement __isabstractmethod__ as a property.
property:
 @property
 def __isabstractmethod__(self):
 return (self.fget.__isabstractmethod__ or
 self.fset.__isabstractmethod__ or
 self.fdel.__isabstractmethod__)
staticmethod/classmethod:
 @property
 def __isabstractmethod__(self):
 return self.__func__.__isabstractmethod__
With this approach, the "one true way" to handle abstract descriptors would be to do:
 #instance method
 @abstractmethod
 def f(self):
 ...
 @property
 @abstractmethod
 def f(self):
 ...
 @classmethod
 @abstractmethod
 def f(self):
 ...
 @staticmethod
 @abstractmethod
 def f(self):
 ...
This wouldn't allow for the prettier error messages, but it's much cleaner than having ABCMeta trawling through class attribute dir() lists.
History
Date User Action Args
2011年06月11日 12:55:17ncoghlansetrecipients: + ncoghlan, benjamin.peterson, stutzbach, eric.araujo, michael.foord, daniel.urban, dsdale24, Darren.Dale
2011年06月11日 12:55:17ncoghlansetmessageid: <1307796917.62.0.113519414273.issue11610@psf.upfronthosting.co.za>
2011年06月11日 12:55:17ncoghlanlinkissue11610 messages
2011年06月11日 12:55:16ncoghlancreate

AltStyle によって変換されたページ (->オリジナル) /