Path: csiph.com!news.mixmin.net!weretis.net!feeder1.news.weretis.net!news.solani.org!.POSTED!not-for-mail From: Thomas 'PointedEars' Lahn Newsgroups: comp.lang.python Subject: Re: Descriptors vs Property Date: Sat, 12 Mar 2016 18:13:50 +0100 Organization: PointedEars Software (PES) Lines: 43 Message-ID: <6979634.CGS0JZJfMg@PointedEars.de> References: Reply-To: Thomas 'PointedEars' Lahn Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8Bit X-Trace: solani.org 1457802830 32412 eJwFwYEBwCAIA7CXEGjRcybS/09YguBiVxJMCGItg6TtMWnFPl59Uw9R4hPaXIOJj9dO7B8XRRET (12 Mar 2016 17:13:50 GMT) X-Complaints-To: abuse@news.solani.org NNTP-Posting-Date: Sat, 12 Mar 2016 17:13:50 +0000 (UTC) User-Agent: KNode/4.14.2 X-User-ID: eJwNybEBACEIBLCVEOHAcR4P9h/hbdLENxZuGBzm48OlKMqZc8XywcF060RGNt8XSh1tvJBPdlSyTwm4dan8b2EV9w== Cancel-Lock: sha1:6wkOdCtDCN8+dw3obnQPagIINsc= X-NNTP-Posting-Host: eJwFwYEBwCAIA7CXBGll5wCu/59ggk3jnCAYEORuf3nV5MlZeTO8ZE3JsYTw2DY9on1dvPcBIF8RgA== Xref: csiph.com comp.lang.python:104718 Veek. M wrote: > Veek. M wrote: >> class TypedProperty(object): >> def __init__(self,name,type,default=None): >> self.name = "_" + name >> self.type = type >> self.default = default if default else type() >> >> def __get__(self,instance,cls): >> return getattr(instance,self.name,self.default) >> […] >> class Foo(object): >> name = TypedProperty("name",str) >> num = TypedProperty("num",int,42) >> […] >> When you do f.name you are actually doing: >> >> f.name.__get__(self, instance, cls) Correct. >> What the heck?? > As in, why is he passing instance, cls and who is populating those vars? RTFM: > When you do f.name you just have self to pass into > name.__whatever__(self) No. > I haven't read the descriptor protocol as yet. You should. You should also trim your quotations to the relevant minimum, and post using your real name. -- PointedEars Twitter: @PointedEars2 Please do not cc me. / Bitte keine Kopien per E-Mail.