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