summaryrefslogtreecommitdiff
path: root/modules/language/python
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python')
-rw-r--r--modules/language/python/property.scm35
-rw-r--r--modules/language/python/set.scm2
2 files changed, 36 insertions, 1 deletions
diff --git a/modules/language/python/property.scm b/modules/language/python/property.scm
new file mode 100644
index 0000000..eaefc74
--- /dev/null
+++ b/modules/language/python/property.scm
@@ -0,0 +1,35 @@
+(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 (<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))))
+
+
diff --git a/modules/language/python/set.scm b/modules/language/python/set.scm
index cd12586..f0e2956 100644
--- a/modules/language/python/set.scm
+++ b/modules/language/python/set.scm
@@ -12,7 +12,7 @@
(define-class <set> () dict)
(define miss (list 'miss))
-
+
(define-python-class set (<set>)
(define __init__
(case-lambda