Deutsch   English   Français   Italiano  
<prototype-20240120111210@ram.dialup.fu-berlin.de>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: eternal-september.org!news.eternal-september.org!feeder3.eternal-september.org!fu-berlin.de!uni-berlin.de!not-for-mail
From: ram@zedat.fu-berlin.de (Stefan Ram)
Newsgroups: comp.lang.lisp,comp.lang.python
Subject: Re: Is Lexical Binding The Norm Yet?
Date: 20 Jan 2024 10:13:40 GMT
Organization: Stefan Ram
Lines: 46
Expires: 1 Dec 2024 11:59:58 GMT
Message-ID: <prototype-20240120111210@ram.dialup.fu-berlin.de>
References: <uo1i8c$jbru$2@dont-email.me> <86r0ijsdyj.fsf@williamsburg.bawden.org> <871qajgr9k.fsf@nightsong.com> <uo4id7$14ifr$1@dont-email.me> <jwvedeg510z.fsf-monnier+comp.lang.lisp@gnu.org> <uo9cbb$264u2$1@dont-email.me> <20240117122629.806@kylheku.com> <uo9o4k$281t4$1@dont-email.me> <qitjqi521brjnpvebd2b1bidrhevocbt62@4ax.com> <uod249$30h1g$3@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: news.uni-berlin.de bZ5fgMPL6iinXMX0xNiBoAvuWyrFWVMkhz3pVq0wwZIMXK
Cancel-Lock: sha1:5vUMwzwWH0NOgpJYEXIFaStj3BE= sha256:UMkhXDtlqemCgAsfWYy4BF5EZzKaq88+FX4GMffnyQE=
X-Copyright: (C) Copyright 2024 Stefan Ram. All rights reserved.
	Distribution through any means other than regular usenet
	channels is forbidden. It is forbidden to publish this
	article in the Web, to change URIs of this article into links,
        and to transfer the body without this notice, but quotations
        of parts in other Usenet posts are allowed.
X-No-Archive: Yes
Archive: no
X-No-Archive-Readme: "X-No-Archive" is set, because this prevents some
	services to mirror the article in the web. But the article may
	be kept on a Usenet archive server with only NNTP access.
X-No-Html: yes
Content-Language: en-US
Accept-Language: de-DE-1901, en-US, it, fr-FR

Newsgroups: comp.lang.lisp,comp.lang.python

Lawrence D'Oliveiro <ldo@nz.invalid> writes:
>On Thu, 18 Jan 2024 23:39:26 -0500, George Neuner wrote:
>>Programming with closures is more like using "prototype OO". Prototype
>>systems don't have classes, but rather ANY object can be modified to
>>change its set of instance data and/or methods, and can be cloned to
>>create new objects of that same "type".
>That’s true of Python, too.

  Yes that's true. Forgive me guys if that's too "off topic"
  in comp.lang.lisp, but it might not be obvious how to create
  an object in Python and then attach fields or methods to it.
  So here I humbly submit a small example program to show this.

  main.py

from types import *

# create a new object
def counter_object(): pass

# attach a numeric field to the object
counter_object.counter_value = 0

# define a named function
def increment_value( self ): self.counter_value += 1

# attach the named function to the object as a method
counter_object.increment_value = \
MethodType( increment_value, counter_object )

# call the method
counter_object.increment_value()

# attach an unnamed function to the object
counter_object.get_value = \
MethodType( lambda self: self.counter_value, counter_object )

# call that method
print( counter_object.get_value() )

  This program will then print "1" and a line terminator.

Newsgroups: comp.lang.lisp,comp.lang.python