Path: csiph.com!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Marko Rauhamaa Newsgroups: comp.lang.python Subject: Re: List of Functions Date: Tue, 29 Mar 2016 07:49:38 +0300 Organization: A noiseless patient Spider Lines: 42 Message-ID: <87zithx50d.fsf@elektro.pacujo.net> References: <3c44f0f8-d701-463e-bf2c-f5871c51bddf@googlegroups.com> <87bn5z1mkd.fsf@bsb.me.uk> <87mvpjx9kh.fsf@elektro.pacujo.net> <87twjqn2jn.fsf@elektro.pacujo.net> <56f9b5c2$0$1606$c3e8da3$5496439d@news.astraweb.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="b7cb1518d23ec19d482dcc9c31d30fdd"; logging-data="30749"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+G4xMqhNxrWdOJBCbZZoXQ" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) Cancel-Lock: sha1:Ebse194rp4sOCjGSpMOyAQgX5WM= sha1:LYRsSgtW28BEieH/3h6MFpXmlwU= Xref: csiph.com comp.lang.python:105948 Steven D'Aprano : > On Tue, 29 Mar 2016 08:40 am, Chris Angelico wrote: > >> On Tue, Mar 29, 2016 at 12:40 AM, Marko Rauhamaa wrote: >>> Dan Sommers : >>> >>>> On Mon, 28 Mar 2016 11:58:54 +0300, Marko Rauhamaa wrote: >>>>> As for Python, I don't feel a great need for anonymous functions. >>>>> However, I keep running into a need for anonymous classes, or, >>>>> rather, classless objects. Not a biggie. I just create a one-off >>>>> inner class and instantiate it, but I do appreciate Java's >>>>> syntactic innovation. > > "Classless object" is an oxymoron in Python since all values without > exception have a class. Can you explain what you mean? In class terms, I mean a closure class that has precisely one instance. Just like a closure function has precisely one instance. In object terms, I mean an object that implements an interface but whose class is not of essence. > Also, for the benefit of those who aren't Java coders, what do you mean > by "Java's syntactic innovation"? HelloWorld frenchGreeting = new HelloWorld() { String name = "tout le monde"; public void greet() { greetSomeone("tout le monde"); } public void greetSomeone(String someone) { name = someone; System.out.println("Salut " + name); } }; Marko