Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!ecngs!feeder2.ecngs.de!newsfeed.freenet.ag!news2.euro.net!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.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'builtin': 0.09; 'classes.': 0.09; 'patch.': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'try:': 0.09; 'jan': 0.12; 'bool': 0.16; 'builtins': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'reedy': 0.16; 'subject: \n ': 0.16; 'subject:OOP': 0.16; 'subject:object': 0.16; 'subject:possible': 0.16; 'subject:programming': 0.16; 'subject:type': 0.16; '{})': 0.16; 'wrote:': 0.18; '>>>': 0.22; 'import': 0.22; 'header:User-Agent:1': 0.23; 'case.': 0.24; 'mon,': 0.24; '15,': 0.26; 'subject:/': 0.26; 'header:X -Complaints-To:1': 0.27; 'header:In-Reply-To:1': 0.27; 'leave': 0.29; 'except': 0.35; 'one,': 0.35; 'acceptable': 0.36; 'two': 0.37; 'to:addr:python-list': 0.38; 'pm,': 0.38; 'to:addr:python.org': 0.39; 'received:org': 0.40; 'ian': 0.60; 'skip:n 10': 0.64; 'decided': 0.64; 'subject:The': 0.64; 'received:46': 0.66; 'here': 0.66; 'believe': 0.68; 'other.': 0.75; "'range'": 0.84; '2013': 0.98 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Serhiy Storchaka Subject: Re: The type/object distinction and possible synthesis of OOP and imperative programming languages Date: Tue, 16 Apr 2013 11:25:53 +0300 References: <516bd241$0$29872$c3e8da3$5496439d@news.astraweb.com> <516C3C44.6010706@rece.vub.ac.be> <516cb85b$0$29977$c3e8da3$5496439d@news.astraweb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Gmane-NNTP-Posting-Host: 46.211.120.32 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 In-Reply-To: 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: 23 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1366100771 news.xs4all.nl 2673 [2001:888:2000:d::a6]:42291 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:43664 On 16.04.13 07:46, Ian Kelly wrote: > On Mon, Apr 15, 2013 at 9:17 PM, Terry Jan Reedy wrote: >> I will keep the above in mind if I write or review a patch. here are 4 >> non-subclassable builtin classes. Two are already documented. Bool in one, >> forget which other. I believe it was recently decided to leave the other two >> as is given the absence of any practical use case. > > The four are bool, NoneType, slice and ellipsis, I believe. >>> import builtins >>> for n in dir(builtins): ... if type(getattr(builtins, n)) is type: ... try: ... t = type(n, (getattr(builtins, n),), {}) ... except TypeError as e: ... print(e) ... type 'bool' is not an acceptable base type type 'memoryview' is not an acceptable base type type 'range' is not an acceptable base type type 'slice' is not an acceptable base type