comp.lang.ada
 help / color / mirror / Atom feed
From: Florian Weimer <fw@deneb.enyo.de>
Subject: Re: controlled type in generic package?
Date: 09 Feb 2001 11:39:13 +0100
Date: 2001-02-09T11:39:13+01:00	[thread overview]
Message-ID: <871yt8rvhq.fsf@deneb.enyo.de> (raw)
In-Reply-To: Pine.BSF.4.21.0102081248311.18552-100000@shell5.ba.best.com

Brian Rogoff <bpr@shell5.ba.best.com> writes:

> Yes, C++, Java and Eiffel are fairly "flat" languages, like Python and
> unlike Ada.

Python permits class declarations anywhere a statement is allowed (in
fact, a class declaration *is* a statement).  Python classes are
usually used to implement closures:

def add_something(something):
    class Add_Something_Class:
        def __init__(self, something):
            self.something = something

        def __call__(self, arg):
            return arg + self.something

    return Add_Something_Class(something)

add_1 = add_something(1)

print add_1(2)

In this particular case, you could use a function declaration as well
(which is just another statement ;-), but in more complicated cases,
the class approach is better.

Python is not a flat language at all.



  reply	other threads:[~2001-02-09 10:39 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-06 11:06 controlled type in generic package? Nils Priebe
     [not found] ` <slrn97vtf5.ho.lutz@taranis.iks-jena.de>
     [not found]   ` <95q19j$9d$1@usenet.rational.com>
2001-02-07 10:11     ` Lutz Donnerhacke
2001-02-07 21:57       ` Mark Lundquist
     [not found]   ` <95p2ab$463$1@nnrp1.deja.com>
2001-02-07 15:08     ` Jean-Pierre Rosen
2001-02-08 15:41       ` Ted Dennison
2001-02-08 18:21         ` Jean-Pierre Rosen
2001-02-08 16:31       ` Florian Weimer
2001-02-08 21:10       ` Brian Rogoff
2001-02-09 10:39         ` Florian Weimer [this message]
2001-02-09 17:02           ` Brian Rogoff
2001-02-09 18:45             ` Florian Weimer
2001-02-13  0:32           ` Nick Roberts
2001-02-14  0:30             ` Jon S Anthony
     [not found]               ` <x7vg0hd20cm.fsf@smaug.pushface.org>
     [not found]                 ` <hovk6.96$aw5.304@www.newsranger.com>
2001-02-23 20:50                   ` Simon Wright
     [not found]     ` <95q1fa$9e$1@usenet.rational.com>
2001-02-07 15:28       ` Ted Dennison
2001-02-07 16:29         ` Brian Rogoff
     [not found]           ` <3A82A66D.49DE7EBD@bton.ac.uk>
2001-02-08 15:15             ` Robert Dewar
2001-02-08 16:56             ` Florian Weimer
2001-02-09 10:25               ` John English
2001-02-09 19:46                 ` Brian Rogoff
2001-02-07 18:52         ` Pat Rogers
2001-02-07 19:23           ` Pat Rogers
2001-02-07 19:50             ` Ted Dennison
2001-02-07 22:52         ` Jean-Pierre Rosen
2001-02-08  9:36           ` dmitry6243
2001-02-09  8:51             ` Jean-Pierre Rosen
2001-02-09 12:28               ` dmitry6243
2001-02-08 19:58           ` Mark Lundquist
2001-02-10  9:54           ` Thomas Wolf
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox