(define-module (language python property) #:use-module (oop pf-objects) #:use-module (oop goops) #:use-module (language python def) #:use-module (language python exceptions) #:export (property)) (define-python-class property () (define __init__ (lam (o (= getx None) (= setx None) (= delx None)) (slot-set! o 'get getx) (slot-set! o 'set setx) (slot-set! o 'del delx) o)) (define setter (lambda (self f) (slot-set! self 'set f) self)) (define getter (lambda (self f) (slot-set! self 'get f) self)) (define deleter (lambda (self f) (slot-set! self 'del f) self)) (define fget (lambda (self) (slot-ref self 'get))) (define fset (lambda (self) (slot-ref self 'set))) (define fdel (lambda (self) (slot-ref self 'del))))