Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.057 X-Spam-Evidence: '*H*': 0.89; '*S*': 0.00; 'attribute': 0.07; 'val': 0.09; 'def': 0.12; 'self.y': 0.16; 'subject: \n ': 0.16; 'subject:make': 0.16; 'header:User-Agent:1': 0.23; 'instance,': 0.24; 'replace': 0.24; 'correct': 0.29; 'initiate': 0.31; 'class': 0.32; 'skip:_ 10': 0.34; 'maybe': 0.34; 'subject:from': 0.34; 'received:google.com': 0.35; 'there': 0.35; 'received:10': 0.37; 'message-id:@gmail.com': 0.38; 'to:addr:python-list': 0.38; 'to:addr:python.org': 0.39; 'subject: ': 0.61; 'between': 0.67; 'exam': 0.84; 'x):': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=atpQl+Tejw9Dygj9JK7rrcFvJBSdWdBrzht1zMLuJQA=; b=IBK7CaiM7+a+t2ofxGzL7yTrGwYM34fyh7TIZz6sukQ7bvvQu6mghSLArUae1XCJ+j 0c5Nys++Ap6IIlU7lrKhE2M+I4W9hN2nGp0ui00P1gHnqlyidyW5spCAFhoy38QBvTen /m48xIFZ3xt+qOcO14zpUYRQKvTdzkGiG5GPZZ0Ok9PZWDWm93tb0JY7G2Z3loy+eCgv BSBJWgipO+YqhZ5zy9bcIZLyxneBRM1JszkWeLqLU4ZEYVdyD4PZYgs5f/sPDPwS0BIV MGzrHfLB7iSTPX8nPtukIcVISWPdlbH5t5krCgbSDFGwF/V7PGwWAsj1x9e931sK0WRx 42+Q== X-Received: by 10.68.229.166 with SMTP id sr6mr61634887pbc.33.1408630429125; Thu, 21 Aug 2014 07:13:49 -0700 (PDT) Date: Thu, 21 Aug 2014 22:13:32 +0800 From: luofeiyu User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: python-list@python.org Subject: Distinguishing attribute name from varible name to make codes clear and definite Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 40 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1408630431 news.xs4all.nl 2887 [2001:888:2000:d::a6]:42516 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:76738 I feel that self.x and x will be confused in the following codes. class MyDescriptor(object): def __init__(self, x): self.x = x def __get__(self, instance, owner): print('get from descriptor') return self.x def __set__(self, instance, value): print('set from descriptor') self.x = value def __delete__(self, instance): print('del from descriptor, the val is', self.x) exam=MyDescriptor("hallo") when class MyDescriptor initiate , the `hallo` was passed into x in __init__(self, x); Literally self.x maybe understood to be self.hallo ,assign a attribute named 'hallo' to instance exam. It is a better way to replace self.x to self.y . class MyDescriptor(object): def __init__(self, x): self.y = x def __get__(self, instance, owner): print('get from descriptor') return self.y def __set__(self, instance, value): print('set from descriptor') self.y = value def __delete__(self, instance): print('del from descriptor, the val is', self.y) exam=MyDescriptor("hallo") There is a attribute y in instance exam , the `hallo` was passed into x in __init__(self, x).No any relation between x and y ,`hallo` and y. My view is correct or not ?