|
3 | 3 | </details><br>
|
4 | 4 |
|
5 | 5 | <details open><summary><strong>What is the best way to use it?</strong></summary><br>
|
6 |
| - I keep the text file open on separate desktop at all times. It is also in a different text editor than the one I usually use, so it's easier to switch to with <code>Ctrl+↹</code> / <code>⌘↹</code>. Cheatsheet consists of minimal text and short examples so things are easy to find with <code>Ctrl+F</code> / <code>⌘F</code>.<br><br> |
| 6 | + I keep the text file open on separate desktop at all times. It is also in a different text editor than the one I usually use, so it's easier to switch to with <code>Ctrl+↹</code> / <code>⌘↹</code>. Cheatsheet consists of minimal text and short examples so things are easy to find with <code>Ctrl+F</code> / <code>⌘F</code>. If you're on the webpage, searching for <code>'#<name>'</code> will only search for the titles.<br><br> |
7 | 7 | I also keep the Python console open at all times to test little snippets of code, to check out the available functions of a module using code completion and above all, to use <code>help(<module/object/function/type>)</code> command. If something is still unclear, then I search the Python docs by googling <code>'python docs <module/function>'</code>.
|
8 | 8 | </details><br>
|
9 | 9 |
|
|
23 | 23 | </details><br>
|
24 | 24 |
|
25 | 25 | <details open><summary><strong>What exactly is <code><collection></code>?</strong></summary><br>
|
26 |
| - Collection is my name for an iterable object. An iterable object in Python is any object that has at least one of iter() and getitem() special methods defined. <code><object>.__iter__()</code> returns an iterator of object's items and <code><object>.__getitem__(<index>)</code> returns an item at that index. I chose not to use the name iterable because it sounds scarier and more vague than collection, even though it has a precise definition.<br><br> |
27 |
| - |
28 |
| - <code><iterable></code> should not be confused with abstract base class <code>collections.abc.Iterable</code>. Expression <code>instanceof(<object>, collections.abc.Iterable)</code> only checks if object has iter() special method. <code>instanceof(<object>, collections.abc.Collection)</code> checks for len(), iter() and contains(). |
| 26 | + Collection is my name for an iterable object. An iterable object in Python is any object that has at least one of iter() and getitem() special methods defined. By convention, <code><object>.__iter__()</code> should return an iterator of object's items and <code><object>.__getitem__(<index>)</code> an item at that index. I chose not to use the name iterable because it sounds scarier and more vague than collection, even though it has a precise definition.<br><br> |
| 27 | + To make matters a bit more confusing, an abstract base class called Iterable doesn't fully follow this definition. An expression <code>instanceof(<object>, collections.abc.Iterable)</code> only checks whether an object has iter() special method, disregarding the getitem().<br><br> |
| 28 | + Although collection has no definition in Python's <a href="https://docs.python.org/3/glossary.html">glossary</a>, there exists a Collection abstract base class. Expression <code>instanceof(<object>, collections.abc.Collection)</code> returns 'True' for any object that has len(), iter() and contains() special methods defined. <code><object>.__len__()</code> should return the number of elements and <code><object>.__contains__(<el>)</code> should check if object contains the passed element. |
29 | 29 | </details><br>
|
30 | 30 |
|
31 | 31 | <details open><summary><strong>What about PEP 8?</strong></summary><br>
|
|
0 commit comments