|
2 | 2 | "cells": [
|
3 | 3 | {
|
4 | 4 | "cell_type": "code",
|
5 |
| - "execution_count": null, |
| 5 | + "execution_count": 1, |
6 | 6 | "metadata": {},
|
7 | 7 | "outputs": [],
|
8 | 8 | "source": [
|
|
11 | 11 | },
|
12 | 12 | {
|
13 | 13 | "cell_type": "code",
|
14 |
| - "execution_count": null, |
| 14 | + "execution_count": 2, |
15 | 15 | "metadata": {},
|
16 | 16 | "outputs": [],
|
17 | 17 | "source": [
|
|
26 | 26 | },
|
27 | 27 | {
|
28 | 28 | "cell_type": "code",
|
29 |
| - "execution_count": null, |
| 29 | + "execution_count": 3, |
30 | 30 | "metadata": {},
|
31 | 31 | "outputs": [],
|
32 | 32 | "source": [
|
|
55 | 55 | },
|
56 | 56 | {
|
57 | 57 | "cell_type": "code",
|
58 |
| - "execution_count": null, |
| 58 | + "execution_count": 4, |
59 | 59 | "metadata": {},
|
60 | 60 | "outputs": [],
|
61 | 61 | "source": [
|
|
65 | 65 | },
|
66 | 66 | {
|
67 | 67 | "cell_type": "code",
|
68 |
| - "execution_count": null, |
| 68 | + "execution_count": 5, |
69 | 69 | "metadata": {},
|
70 | 70 | "outputs": [],
|
71 | 71 | "source": [
|
|
84 | 84 | },
|
85 | 85 | {
|
86 | 86 | "cell_type": "code",
|
87 |
| - "execution_count": null, |
| 87 | + "execution_count": 6, |
88 | 88 | "metadata": {},
|
89 | 89 | "outputs": [],
|
90 | 90 | "source": [
|
|
94 | 94 | },
|
95 | 95 | {
|
96 | 96 | "cell_type": "code",
|
97 |
| - "execution_count": null, |
| 97 | + "execution_count": 7, |
98 | 98 | "metadata": {},
|
99 | 99 | "outputs": [],
|
100 | 100 | "source": [
|
|
113 | 113 | },
|
114 | 114 | {
|
115 | 115 | "cell_type": "code",
|
116 |
| - "execution_count": null, |
| 116 | + "execution_count": 8, |
117 | 117 | "metadata": {},
|
118 | 118 | "outputs": [],
|
119 | 119 | "source": [
|
|
125 | 125 | },
|
126 | 126 | {
|
127 | 127 | "cell_type": "code",
|
128 |
| - "execution_count": null, |
| 128 | + "execution_count": 32, |
129 | 129 | "metadata": {},
|
130 | 130 | "outputs": [],
|
131 | 131 | "source": [
|
|
136 | 136 | " flds = list(flds or [])\n",
|
137 | 137 | " def _f(self):\n",
|
138 | 138 | " res = f'{type(self).__module__}.{type(self).__name__}'\n",
|
139 |
| - " if not flds: return f'<{res}>'\n", |
140 |
| - " sig = ', '.join(f'{o}={getattr(self,o)!r}' for o in flds)\n", |
| 139 | + " fs = flds if flds else [o for o in vars(self) if not o.startswith('_')]\n", |
| 140 | + " sig = ', '.join(f'{o}={getattr(self,o)!r}' for o in fs)\n", |
141 | 141 | " return f'{res}({sig})'\n",
|
142 | 142 | " return _f"
|
143 | 143 | ]
|
|
151 | 151 | },
|
152 | 152 | {
|
153 | 153 | "cell_type": "code",
|
154 |
| - "execution_count": null, |
| 154 | + "execution_count": 33, |
155 | 155 | "metadata": {},
|
156 | 156 | "outputs": [
|
157 | 157 | {
|
158 | 158 | "data": {
|
159 | 159 | "text/plain": [
|
160 |
| - "'<__main__.SomeClass>'" |
| 160 | + "'__main__.SomeClass()'" |
161 | 161 | ]
|
162 | 162 | },
|
163 |
| - "execution_count": null, |
| 163 | + "execution_count": 33, |
164 | 164 | "metadata": {},
|
165 | 165 | "output_type": "execute_result"
|
166 | 166 | }
|
|
179 | 179 | },
|
180 | 180 | {
|
181 | 181 | "cell_type": "code",
|
182 |
| - "execution_count": null, |
| 182 | + "execution_count": 34, |
183 | 183 | "metadata": {},
|
184 | 184 | "outputs": [
|
185 | 185 | {
|
|
188 | 188 | "\"__main__.SomeClass(a=1, b='foo')\""
|
189 | 189 | ]
|
190 | 190 | },
|
191 |
| - "execution_count": null, |
| 191 | + "execution_count": 34, |
192 | 192 | "metadata": {},
|
193 | 193 | "output_type": "execute_result"
|
194 | 194 | }
|
|
203 | 203 | "repr(SomeClass())"
|
204 | 204 | ]
|
205 | 205 | },
|
| 206 | + { |
| 207 | + "cell_type": "markdown", |
| 208 | + "metadata": {}, |
| 209 | + "source": [ |
| 210 | + "Nested objects work too:" |
| 211 | + ] |
| 212 | + }, |
206 | 213 | {
|
207 | 214 | "cell_type": "code",
|
208 |
| - "execution_count": null, |
| 215 | + "execution_count": 35, |
209 | 216 | "metadata": {},
|
210 | 217 | "outputs": [
|
211 | 218 | {
|
|
214 | 221 | "\"__main__.AnotherClass(c=__main__.SomeClass(a=1, b='foo'), d='bar')\""
|
215 | 222 | ]
|
216 | 223 | },
|
217 |
| - "execution_count": null, |
| 224 | + "execution_count": 35, |
218 | 225 | "metadata": {},
|
219 | 226 | "output_type": "execute_result"
|
220 | 227 | }
|
|
228 | 235 | "repr(AnotherClass())"
|
229 | 236 | ]
|
230 | 237 | },
|
| 238 | + { |
| 239 | + "cell_type": "markdown", |
| 240 | + "metadata": {}, |
| 241 | + "source": [ |
| 242 | + "Instance variables (but not class variables) are shown if `basic_repr` is called with no arguments:" |
| 243 | + ] |
| 244 | + }, |
231 | 245 | {
|
232 | 246 | "cell_type": "code",
|
233 |
| - "execution_count": null, |
| 247 | + "execution_count": 36, |
| 248 | + "metadata": {}, |
| 249 | + "outputs": [ |
| 250 | + { |
| 251 | + "data": { |
| 252 | + "text/plain": [ |
| 253 | + "\"__main__.SomeClass(a=1, b='foo')\"" |
| 254 | + ] |
| 255 | + }, |
| 256 | + "execution_count": 36, |
| 257 | + "metadata": {}, |
| 258 | + "output_type": "execute_result" |
| 259 | + } |
| 260 | + ], |
| 261 | + "source": [ |
| 262 | + "class SomeClass:\n", |
| 263 | + " def __init__(self, a=1, b='foo'): self.a,self.b = a,b\n", |
| 264 | + " __repr__=basic_repr()\n", |
| 265 | + "\n", |
| 266 | + "repr(SomeClass())" |
| 267 | + ] |
| 268 | + }, |
| 269 | + { |
| 270 | + "cell_type": "code", |
| 271 | + "execution_count": 37, |
234 | 272 | "metadata": {},
|
235 | 273 | "outputs": [],
|
236 | 274 | "source": [
|
|
6661 | 6699 | },
|
6662 | 6700 | {
|
6663 | 6701 | "cell_type": "code",
|
6664 |
| - "execution_count": null, |
| 6702 | + "execution_count": 38, |
6665 | 6703 | "metadata": {},
|
6666 | 6704 | "outputs": [],
|
6667 | 6705 | "source": [
|
|
6682 | 6720 | "split_at_heading": true
|
6683 | 6721 | },
|
6684 | 6722 | "kernelspec": {
|
6685 |
| - "display_name": "python3", |
| 6723 | + "display_name": "Python 3 (ipykernel)", |
6686 | 6724 | "language": "python",
|
6687 | 6725 | "name": "python3"
|
| 6726 | + }, |
| 6727 | + "language_info": { |
| 6728 | + "codemirror_mode": { |
| 6729 | + "name": "ipython", |
| 6730 | + "version": 3 |
| 6731 | + }, |
| 6732 | + "file_extension": ".py", |
| 6733 | + "mimetype": "text/x-python", |
| 6734 | + "name": "python", |
| 6735 | + "nbconvert_exporter": "python", |
| 6736 | + "pygments_lexer": "ipython3", |
| 6737 | + "version": "3.11.8" |
6688 | 6738 | }
|
6689 | 6739 | },
|
6690 | 6740 | "nbformat": 4,
|
|
0 commit comments