File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed
Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 66
77package py
88
9+ import (
10+ "strings"
11+ )
12+
913// A python Range object
1014// FIXME one day support BigInts too!
1115type Range struct {
@@ -104,6 +108,42 @@ func (r *Range) M__iter__() (Object, error) {
104108 }, nil
105109}
106110
111+ func (r * Range ) M__str__ () (Object , error ) {
112+ return r .M__repr__ ()
113+ }
114+
115+ func (r * Range ) repr () (Object , error ) {
116+ var b strings.Builder
117+ b .WriteString ("range(" )
118+ start , err := ReprAsString (r .Start )
119+ if err != nil {
120+ return nil , err
121+ }
122+ stop , err := ReprAsString (r .Stop )
123+ if err != nil {
124+ return nil , err
125+ }
126+ b .WriteString (start )
127+ b .WriteString (", " )
128+ b .WriteString (stop )
129+
130+ if r .Step != 1 {
131+ step , err := ReprAsString (r .Step )
132+ if err != nil {
133+ return nil , err
134+ }
135+ b .WriteString (", " )
136+ b .WriteString (step )
137+ }
138+ b .WriteString (")" )
139+
140+ return String (b .String ()), nil
141+ }
142+
143+ func (r * Range ) M__repr__ () (Object , error ) {
144+ return r .repr ()
145+ }
146+
107147func (r * Range ) M__len__ () (Object , error ) {
108148 return r .Length , nil
109149}
You can’t perform that action at this time.
0 commit comments