Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!newsfeed.xs4all.nl!newsfeed1.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; 'steve': 0.09; 'python': 0.11; 'language,': 0.12; 'ecosystem': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'public,': 0.16; 'language': 0.16; 'wrote:': 0.18; 'either.': 0.24; 'java': 0.24; 'header:In-Reply-To:1': 0.27; 'external': 0.29; 'said,': 0.30; 'message-id:@mail.gmail.com': 0.30; 'code': 0.31; 'usually': 0.31; "d'aprano": 0.31; 'object.': 0.31; 'sep': 0.31; 'steven': 0.31; 'definition': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'c++': 0.36; 'done': 0.36; 'subject:?': 0.36; 'members.': 0.37; 'to:addr:python-list': 0.38; 'pm,': 0.38; 'rather': 0.38; 'though,': 0.39; 'to:addr:python.org': 0.39; 'above,': 0.60; 'more': 0.64; 'whereas': 0.91; 'subject:skip:E 10': 0.95; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=Jf61QXLGw+4YPoo4FWLEBcDEh1OFYKUeE4odUj6eAA4=; b=YARdfI3MAdKFRDiNxo3iLnrbbbGT3CgbezLLPUs8mlYRzHTsV/dHwMF6E+oyzu1oOz Ldn51JeEOOeIMCAHnnKzpNttLkAc7LqxMmSeOOCLt7r9njWvELWekcH9SvV+rBbjylr5 pTd/M/8o88yTmdq+8OiPdyXX389twk//oo5L2mCNQQZfEpkqycDrlv2Gn3KG4fAUu1zk MPdVLZfocG/05cJO7F18UatNGYrlG6zpcFyQahqvnz8Gikl2v0d9Dd65MGV0XP2HIfnx n6yox/bI24/lxIKVIqCclAawXS1eYgHQL9NiWR9YqQpNTb33zodAm5j5G/wXZTMw4khj AwFA== MIME-Version: 1.0 X-Received: by 10.58.136.4 with SMTP id pw4mr17264206veb.10.1378023701708; Sun, 01 Sep 2013 01:21:41 -0700 (PDT) In-Reply-To: <5222f675$0$6599$c3e8da3$5496439d@news.astraweb.com> References: <8255dfbd-a2a1-4ab7-b900-ee19faa459f2@googlegroups.com> <8c7c4854-70e1-46e7-a3ff-a3206c4c5c27@googlegroups.com> <5221567b$0$6599$c3e8da3$5496439d@news.astraweb.com> <5221d7ab$0$6599$c3e8da3$5496439d@news.astraweb.com> <5222f675$0$6599$c3e8da3$5496439d@news.astraweb.com> Date: Sun, 1 Sep 2013 18:21:41 +1000 Subject: Re: Encapsulation unpythonic? From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-1 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: 16 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1378023704 news.xs4all.nl 15999 [2001:888:2000:d::a6]:52847 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:53405 On Sun, Sep 1, 2013 at 6:10 PM, Steven D'Aprano wrote: > Java and C++ allow you to declare members as public, so it is *not true* > that calling methods is the only way to change members. If you accept > Steve Holden's (wrong) definition above, Java and C++ don't have > encapsulation either. That said, though, when you consider the language ecosystem rather than just the language, there is a strong tendency for Java and C++ code to wrap everything up with functions (no public data members), whereas Python code is far more likely to have external code directly access data inside an object. You usually will find Java code calling methods to change members, whereas that's done in Python only when there's a need for it. ChrisA