Skip to content

Commit e48a865

Browse files
committed
Introspection
1 parent e5a6aa4 commit e48a865

File tree

2 files changed

+38
-33
lines changed

2 files changed

+38
-33
lines changed

README.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,11 +1302,11 @@ class <enum_name>(Enum):
13021302
* **Otherwise it returns an increment of the last numeric value.**
13031303

13041304
```python
1305-
<member> = <enum>.<member_name> # Returns a member.
1306-
<member> = <enum>['<member_name>'] # Returns a member or raises KeyError.
1307-
<member> = <enum>(<value>) # Returns a member or raises ValueError.
1308-
<str> = <member>.name # Returns member's name.
1309-
<obj> = <member>.value # Returns member's value.
1305+
<member> = <enum>.<member_name> # Returns a member.
1306+
<member> = <enum>['<member_name>'] # Returns a member or raises KeyError.
1307+
<member> = <enum>(<value>) # Returns a member or raises ValueError.
1308+
<str> = <member>.name # Returns member's name.
1309+
<obj> = <member>.value # Returns member's value.
13101310
```
13111311

13121312
```python
@@ -1992,9 +1992,6 @@ Deque
19921992
```python
19931993
from collections import deque
19941994
<deque> = deque(<collection>, maxlen=None)
1995-
```
1996-
1997-
```python
19981995
<deque>.appendleft(<el>) # Opposite element is dropped if full.
19991996
<el> = <deque>.popleft() # Raises IndexError if empty.
20001997
<deque>.extendleft(<collection>) # Collection gets reversed.
@@ -2092,19 +2089,25 @@ Introspection
20922089

20932090
### Variables
20942091
```python
2095-
<list> = dir() # Returns names of variables in current scope.
2096-
<dict> = locals() # Returns dict of local variables. Also vars().
2092+
<list> = dir() # Returns names of local variables (including functions).
2093+
<dict> = vars() # Returns dict of local variables. Also locals().
20972094
<dict> = globals() # Returns dict of global variables.
20982095
```
20992096

21002097
### Attributes
21012098
```python
2102-
<dict> = vars(<object>)
2099+
<list> = dir(<object>) # Returns names of object's attributes (incl. methods).
2100+
<dict> = vars(<object>) # Returns dict of object's fields. Also <object>.__dict__.
2101+
```
2102+
2103+
```python
21032104
<bool> = hasattr(<object>, '<attr_name>')
21042105
value = getattr(<object>, '<attr_name>')
21052106
setattr(<object>, '<attr_name>', value)
2107+
delattr(<object>, '<attr_name>')
21062108
```
21072109

2110+
21082111
### Parameters
21092112
```python
21102113
from inspect import signature
@@ -2648,9 +2651,9 @@ from PIL import Image
26482651
```
26492652

26502653
```bash
2651-
<2d_array> = np.array(<Image>) # NumPy array from greyscale image.
2652-
<3d_array> = np.array(<Image>) # NumPy array from color image.
2653-
<Image> = Image.fromarray(<array>) # Image from NumPy array.
2654+
<2d_array> = np.array(<Image>) # Generates NumPy array from greyscale image.
2655+
<3d_array> = np.array(<Image>) # Generates NumPy array from color image.
2656+
<Image> = Image.fromarray(<array>) # Generates image from NumPy array.
26542657
```
26552658

26562659
### Modes

index.html

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1234,11 +1234,11 @@
12341234
<li><strong>If there are no numeric values before auto(), it returns 1.</strong></li>
12351235
<li><strong>Otherwise it returns an increment of the last numeric value.</strong></li>
12361236
</ul>
1237-
<pre><code class="python language-python hljs">&lt;member&gt; = &lt;enum&gt;.&lt;member_name&gt; <span class="hljs-comment"># Returns a member.</span>
1238-
&lt;member&gt; = &lt;enum&gt;[<span class="hljs-string">'&lt;member_name&gt;'</span>] <span class="hljs-comment"># Returns a member or raises KeyError.</span>
1239-
&lt;member&gt; = &lt;enum&gt;(&lt;value&gt;) <span class="hljs-comment"># Returns a member or raises ValueError.</span>
1240-
&lt;str&gt; = &lt;member&gt;.name <span class="hljs-comment"># Returns member's name.</span>
1241-
&lt;obj&gt; = &lt;member&gt;.value <span class="hljs-comment"># Returns member's value.</span>
1237+
<pre><code class="python language-python hljs">&lt;member&gt; = &lt;enum&gt;.&lt;member_name&gt; <span class="hljs-comment"># Returns a member.</span>
1238+
&lt;member&gt; = &lt;enum&gt;[<span class="hljs-string">'&lt;member_name&gt;'</span>] <span class="hljs-comment"># Returns a member or raises KeyError.</span>
1239+
&lt;member&gt; = &lt;enum&gt;(&lt;value&gt;) <span class="hljs-comment"># Returns a member or raises ValueError.</span>
1240+
&lt;str&gt; = &lt;member&gt;.name <span class="hljs-comment"># Returns member's name.</span>
1241+
&lt;obj&gt; = &lt;member&gt;.value <span class="hljs-comment"># Returns member's value.</span>
12421242
</code></pre>
12431243
<pre><code class="python language-python hljs">list_of_members = list(&lt;enum&gt;)
12441244
member_names = [a.name <span class="hljs-keyword">for</span> a <span class="hljs-keyword">in</span> &lt;enum&gt;]
@@ -1761,14 +1761,13 @@
17611761

17621762
<div><h2 id="deque"><a href="#deque" name="deque">#</a>Deque</h2><p><strong>A thread-safe list with efficient appends and pops from either side. Pronounced "deck".</strong></p><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> collections <span class="hljs-keyword">import</span> deque
17631763
&lt;deque&gt; = deque(&lt;collection&gt;, maxlen=<span class="hljs-keyword">None</span>)
1764-
</code></pre></div>
1765-
1766-
1767-
<pre><code class="python language-python hljs">&lt;deque&gt;.appendleft(&lt;el&gt;) <span class="hljs-comment"># Opposite element is dropped if full.</span>
1764+
&lt;deque&gt;.appendleft(&lt;el&gt;) <span class="hljs-comment"># Opposite element is dropped if full.</span>
17681765
&lt;el&gt; = &lt;deque&gt;.popleft() <span class="hljs-comment"># Raises IndexError if empty.</span>
17691766
&lt;deque&gt;.extendleft(&lt;collection&gt;) <span class="hljs-comment"># Collection gets reversed.</span>
17701767
&lt;deque&gt;.rotate(n=<span class="hljs-number">1</span>) <span class="hljs-comment"># Rotates elements to the right.</span>
1771-
</code></pre>
1768+
</code></pre></div>
1769+
1770+
17721771
<div><h2 id="threading"><a href="#threading" name="threading">#</a>Threading</h2><ul>
17731772
<li><strong>CPython interpreter can only run a single thread at a time.</strong></li>
17741773
<li><strong>That is why using multiple threads won't result in a faster execution, unless there is an I/O operation in the thread.</strong></li>
@@ -1833,19 +1832,22 @@
18331832
LogicOp = enum.Enum(<span class="hljs-string">'LogicOp'</span>, {<span class="hljs-string">'AND'</span>: op.and_, <span class="hljs-string">'OR'</span> : op.or_})
18341833
last_el = op.methodcaller(<span class="hljs-string">'pop'</span>)(&lt;list&gt;)
18351834
</code></pre>
1836-
<div><h2 id="introspection"><a href="#introspection" name="introspection">#</a>Introspection</h2><p><strong>Inspecting code at runtime.</strong></p><div><h3 id="variables">Variables</h3><pre><code class="python language-python hljs">&lt;list&gt; = dir() <span class="hljs-comment"># Returns names of variables in current scope.</span>
1837-
&lt;dict&gt; = locals() <span class="hljs-comment"># Returns dict of local variables. Also vars().</span>
1835+
<div><h2 id="introspection"><a href="#introspection" name="introspection">#</a>Introspection</h2><p><strong>Inspecting code at runtime.</strong></p><div><h3 id="variables">Variables</h3><pre><code class="python language-python hljs">&lt;list&gt; = dir() <span class="hljs-comment"># Returns names of local variables (including functions).</span>
1836+
&lt;dict&gt; = vars() <span class="hljs-comment"># Returns dict of local variables. Also locals().</span>
18381837
&lt;dict&gt; = globals() <span class="hljs-comment"># Returns dict of global variables.</span>
18391838
</code></pre></div></div>
18401839

18411840

18421841

1843-
<div><h3 id="attributes-1">Attributes</h3><pre><code class="python language-python hljs">&lt;dict&gt; = vars(&lt;object&gt;)
1844-
&lt;bool&gt; = hasattr(&lt;object&gt;, <span class="hljs-string">'&lt;attr_name&gt;'</span>)
1845-
value = getattr(&lt;object&gt;, <span class="hljs-string">'&lt;attr_name&gt;'</span>)
1846-
setattr(&lt;object&gt;, <span class="hljs-string">'&lt;attr_name&gt;'</span>, value)
1842+
<div><h3 id="attributes-1">Attributes</h3><pre><code class="python language-python hljs">&lt;list&gt; = dir(&lt;object&gt;) <span class="hljs-comment"># Returns names of object's attributes (incl. methods).</span>
1843+
&lt;dict&gt; = vars(&lt;object&gt;) <span class="hljs-comment"># Returns dict of object's fields. Also &lt;object&gt;.__dict__.</span>
18471844
</code></pre></div>
18481845

1846+
<pre><code class="python language-python hljs">&lt;bool&gt; = hasattr(&lt;object&gt;, <span class="hljs-string">'&lt;attr_name&gt;'</span>)
1847+
value = getattr(&lt;object&gt;, <span class="hljs-string">'&lt;attr_name&gt;'</span>)
1848+
setattr(&lt;object&gt;, <span class="hljs-string">'&lt;attr_name&gt;'</span>, value)
1849+
delattr(&lt;object&gt;, <span class="hljs-string">'&lt;attr_name&gt;'</span>)
1850+
</code></pre>
18491851
<div><h3 id="parameters-1">Parameters</h3><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> inspect <span class="hljs-keyword">import</span> signature
18501852
&lt;sig&gt; = signature(&lt;function&gt;)
18511853
no_of_params = len(&lt;sig&gt;.parameters)
@@ -2257,9 +2259,9 @@
22572259
&lt;Image&gt;.putdata(&lt;list/ImagingCore&gt;) <span class="hljs-comment"># Writes a sequence of pixels.</span>
22582260
&lt;Image&gt;.paste(&lt;Image&gt;, (x, y)) <span class="hljs-comment"># Writes an image to image.</span>
22592261
</code></pre>
2260-
<pre><code class="bash language-bash hljs">&lt;2d_array&gt; = np.array(&lt;Image&gt;) <span class="hljs-comment"># NumPy array from greyscale image.</span>
2261-
&lt;3d_array&gt; = np.array(&lt;Image&gt;) <span class="hljs-comment"># NumPy array from color image.</span>
2262-
&lt;Image&gt; = Image.fromarray(&lt;array&gt;) <span class="hljs-comment"># Image from NumPy array.</span>
2262+
<pre><code class="bash language-bash hljs">&lt;2d_array&gt; = np.array(&lt;Image&gt;) <span class="hljs-comment"># Generates NumPy array from greyscale image.</span>
2263+
&lt;3d_array&gt; = np.array(&lt;Image&gt;) <span class="hljs-comment"># Generates NumPy array from color image.</span>
2264+
&lt;Image&gt; = Image.fromarray(&lt;array&gt;) <span class="hljs-comment"># Generates image from NumPy array.</span>
22632265
</code></pre>
22642266
<div><h3 id="modes-1">Modes</h3><ul>
22652267
<li><strong><code class="python hljs"><span class="hljs-string">'1'</span></code> - 1-bit pixels, black and white, stored with one pixel per byte.</strong></li>

0 commit comments

Comments
 (0)