Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #107671

Re: def __init__(self):

Path csiph.com!news.freedyn.net!newsreader4.netcologne.de!news.netcologne.de!newsfeed0.kamp.net!newsfeed.kamp.net!fu-berlin.de!uni-berlin.de!not-for-mail
From Chris Kaynor <ckaynor@zindagigames.com>
Newsgroups comp.lang.python
Subject Re: def __init__(self):
Date Tue, 26 Apr 2016 09:59:39 -0700
Lines 29
Message-ID <mailman.116.1461690002.32212.python-list@python.org> (permalink)
References <34e51ef5-9679-40ec-bc8f-47981353e9d7@googlegroups.com> <571F1361.3010402@digipen.edu> <85eg9sn7qo.fsf@benfinney.id.au> <mailman.100.1461656092.32212.python-list@python.org> <87lh40pyik.fsf@elektro.pacujo.net> <571f9362$0$1602$c3e8da3$5496439d@news.astraweb.com> <1461687967.2507874.590200129.102244C8@webmail.messagingengine.com> <mailman.114.1461687970.32212.python-list@python.org> <571f9836$0$1619$c3e8da3$5496439d@news.astraweb.com> <CALvWhxtRM+Qd983o2eB2SC4Hk0EsU26t-zbOQFW23a27Z3gx3Q@mail.gmail.com>
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8
X-Trace news.uni-berlin.de Z7ubT2U9cdHk3tL1rFzyqgJCGKhYZEKHYVBqK6YFeu/A==
Return-Path <ckaynor@zindagigames.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.005
X-Spam-Evidence '*H*': 0.99; '*S*': 0.00; '(1,': 0.09; 'immutable': 0.09; 'obj': 0.09; 'def': 0.13; 'suggest': 0.15; '&gt;&gt;&gt;': 0.15; "'b',": 0.16; '2016': 0.16; '6.0': 0.16; 'ctypes.': 0.16; 'immutable,': 0.16; 'reason.': 0.16; 'received:209.85.161.174': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'subclassing': 0.16; 'subject:def': 0.16; 'wrote:': 0.16; '>>>': 0.20; 'to:name :python-list@python.org': 0.20; 'ctypes': 0.22; 'am,': 0.23; 'import': 0.24; 'header:In-Reply-To:1': 0.24; 'chris': 0.26; 'compatible': 0.27; 'message-id:@mail.gmail.com': 0.27; 'index,': 0.29; 'class.': 0.30; 'probably': 0.31; 'anybody': 0.32; "d'aprano": 0.33; 'steven': 0.33; 'tue,': 0.34; 'this?': 0.34; 'skip:& 20': 0.35; 'received:google.com': 0.35; 'skip:c 30': 0.35; 'something': 0.35; 'received:209.85': 0.36; '(and': 0.36; 'apple': 0.36; 'to:addr:python-list': 0.36; 'subject:: ': 0.37; 'things': 0.38; 'doing': 0.38; 'received:209': 0.38; 'mean': 0.38; 'means': 0.39; 'to:addr:python.org': 0.40; '26,': 0.72; 'jul': 0.72; 'obvious': 0.76; '4.2.1': 0.84; 'subject:self': 0.84
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=zindagigames-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=j6qEGVky9y8vo403waDYAGdDJOfePsRX5kqMZhBtSc0=; b=fehwMac5D21OUieeYHhyZrx0rs7wG9k2Sulv0G1ODkj5FtaK18ZaDBKPJJLgYVm2NW 4sC5zqoAi57AC9On1ISks79h6antykwjVSYjHQVwkEyLdadyaDtuG1lsgDgm2HxRd/h2 i8YJeU5p1FyAoPZXpmz9LpVF3A0rx098KgTs+h0AO1rCqhsbuYWfcMO1DcfmIxkDyqyR 0E2SICZL85RRXstlwhgnceT+6ObOKQwmsj/TMF74i/Cmmd26ei/1utOWBXzIRXfcJE1r p2I5N+RiT4X3JFkbqxDC4dnTUTtZgk271TXGf8vdRYyy1zGjjkhoNfDWQkswYXAL6Jhg bNZQ==
X-Google-DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=j6qEGVky9y8vo403waDYAGdDJOfePsRX5kqMZhBtSc0=; b=jLcckzkKlTyZ+LKIvQMMQNwzwdODY+T5T7pA0PGvINwRsZRd61wVbsFsW4bH+KXDxy 3Yl8y5XMrbKqbSj6LCiQ0wxtDKV00j9wv6UNImIB+XL/ZX8LFnrC8WZSKtsxWKrZ4IO8 incdDnCxQVLcE0+K1J79yq+V/wRSfF6xv5MgCkLCjeF0VXzBKQuHTJmpJCAvTfW789sv 2cxYjzQETwnSUjHEnmeySve4uUTL/qJXZqk9S/Vu64AdnwtrN9dXhkJ4YOf14DsuuB2o lF+IZCPFdlmRGMl6Z6AXIxvLsa5ywBA71L1V4cMx2OIFFfd7CSIaXtHqAFGt71WG6dIS J7hA==
X-Gm-Message-State AOPr4FXpBZXf8+mFgpGozTmQwgtVLhYIqxHm8AUzocFEg2uvkD2ivmdWGd9CjPyEJ2zPWZtjQCPCXYkyyIDmDg==
X-Received by 10.176.7.35 with SMTP id h32mr1810942uah.17.1461689998829; Tue, 26 Apr 2016 09:59:58 -0700 (PDT)
In-Reply-To <571f9836$0$1619$c3e8da3$5496439d@news.astraweb.com>
X-Content-Filtered-By Mailman/MimeDel 2.1.22
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.22
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID <CALvWhxtRM+Qd983o2eB2SC4Hk0EsU26t-zbOQFW23a27Z3gx3Q@mail.gmail.com>
X-Mailman-Original-References <34e51ef5-9679-40ec-bc8f-47981353e9d7@googlegroups.com> <571F1361.3010402@digipen.edu> <85eg9sn7qo.fsf@benfinney.id.au> <mailman.100.1461656092.32212.python-list@python.org> <87lh40pyik.fsf@elektro.pacujo.net> <571f9362$0$1602$c3e8da3$5496439d@news.astraweb.com> <1461687967.2507874.590200129.102244C8@webmail.messagingengine.com> <mailman.114.1461687970.32212.python-list@python.org> <571f9836$0$1619$c3e8da3$5496439d@news.astraweb.com>
Xref csiph.com comp.lang.python:107671

Show key headers only | View raw


On Tue, Apr 26, 2016 at 9:32 AM, Steven D'Aprano <steve@pearwood.info>
wrote:

> Subclassing immutable built-ins is the most obvious and simple (and
> probably
> common) way to get an immutable class. Actually immutable, short of doing
> wicked things with ctypes.
>

By wicked things with ctypes, do you mean something like this? By no means
do I suggest this actually be used by anybody for any reason.

Tested with '2.7.10 (default, Jul 14 2015, 19:46:27) \n[GCC 4.2.1
Compatible Apple LLVM 6.0 (clang-600.0.39)]'

import ctypes
def changeTuple(tuple, index, newValue):
    obj = ctypes.cast(id(tuple), ctypes.POINTER(ctypes.c_long))
    obj[3+index] = id(newValue)

>>> a = ('a','b','c')
>>> changeTuple(a, 0, 1)
>>> a
(1, 'b', 'c')
>>> changeTuple(a, 1, 3)
>>> a
(1, 3, 'c')

Chris

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

def __init__(self): San <santanu01@gmail.com> - 2016-04-25 23:21 -0700
  Re: def __init__(self): Ben Finney <ben+python@benfinney.id.au> - 2016-04-26 16:31 +1000
  Re: def __init__(self): Gary Herron <gherron@digipen.edu> - 2016-04-26 00:06 -0700
  Re: def __init__(self): Ben Finney <ben+python@benfinney.id.au> - 2016-04-26 17:34 +1000
    Re: def __init__(self): Marko Rauhamaa <marko@pacujo.net> - 2016-04-26 11:25 +0300
      Re: def __init__(self): Steven D'Aprano <steve@pearwood.info> - 2016-04-27 02:12 +1000
        Re: def __init__(self): Random832 <random832@fastmail.com> - 2016-04-26 12:26 -0400
          Re: def __init__(self): Steven D'Aprano <steve@pearwood.info> - 2016-04-27 02:32 +1000
            Re: def __init__(self): Chris Kaynor <ckaynor@zindagigames.com> - 2016-04-26 09:59 -0700
              Re: def __init__(self): Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2016-04-27 14:54 +1000
            Re: def __init__(self): Chris Angelico <rosuav@gmail.com> - 2016-04-27 03:04 +1000
            Re: def __init__(self): Chris Kaynor <ckaynor@zindagigames.com> - 2016-04-26 10:13 -0700
            Re: def __init__(self): Ian Kelly <ian.g.kelly@gmail.com> - 2016-04-26 11:26 -0600
            Re: def __init__(self): Chris Angelico <rosuav@gmail.com> - 2016-04-27 03:30 +1000
        Re: def __init__(self): Marko Rauhamaa <marko@pacujo.net> - 2016-04-26 19:38 +0300
  Re: def __init__(self): Random832 <random832@fastmail.com> - 2016-04-26 09:49 -0400
  Re: def __init__(self): Gary Herron <gherron@digipen.edu> - 2016-04-26 07:25 -0700

csiph-web