Path: csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!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.004 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'true,': 0.05; 'attribute': 0.07; '8bit%:30': 0.09; 'constructor': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'python': 0.11; 'finney': 0.16; "object's": 0.16; 'pythonic': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'subject:object': 0.16; 'subject:versus': 0.16; 'all,': 0.19; 'header:User-Agent:1': 0.23; 'class.': 0.26; 'header:X-Complaints-To:1': 0.27; "i'm": 0.30; 'them?': 0.31; 'but': 0.35; 'there': 0.35; 'should': 0.36; 'so,': 0.37; 'ben': 0.38; 'to:addr:python-list': 0.38; 'anything': 0.39; 'to:addr:python.org': 0.39; 'received:org': 0.40; 'times': 0.62; 'choose': 0.64; 'skip:\xe2 10': 0.65; 'determine': 0.67; 'subjectcharset:utf-8': 0.72; 'brain,': 0.84; 'subject::': 0.85 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Ben Finney Subject: Type of an object: =?utf-8?Q?=E2=80=98obj=2E=5F=5Fclass=5F=5F?= =?utf-8?Q?=E2=80=99?= versus =?utf-8?B?4oCYdHlwZShvYmop4oCZ?= Date: Mon, 16 Dec 2013 12:51:21 +1100 Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Gmane-NNTP-Posting-Host: rasputin.madmonks.org X-Public-Key-ID: 0xAC128405 X-Public-Key-Fingerprint: 517C F14B B2F3 98B0 CB35 4855 B8B2 4C06 AC12 8405 X-Public-Key-URL: http://www.benfinney.id.au/contact/bfinney-gpg.asc X-Post-From: Ben Finney User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) Cancel-Lock: sha1:ok1sxivEFgr/krzqm1raNqqXf0Q= 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: 21 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1387158693 news.xs4all.nl 2882 [2001:888:2000:d::a6]:44915 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:61979 Howdy all, What is the Pythonic way to determine the type of an object? Are there multiple valid ways, and when should each be used? We have ‘obj.__class__’, an attribute bound to the object's class. Or is it? When is that true, and when should we not rely on it? We have ‘type(obj)’, calling the constructor for the ‘type’ type in order to get a reference to the type of ‘obj’. Or is it? When is that true, and when should we not rely on it? Are there other ways to get at the type of a Python object? What reasons are there to choose or avoid them? -- \ “Pinky, are you pondering what I'm pondering?” “I think so, | `\ Brain, but Zero Mostel times anything will still give you Zero | _o__) Mostel.” —_Pinky and The Brain_ | Ben Finney