comparison docs/rendered/pymonkey.html @ 163:4edaa0e6f382

Added notes on identity perseverance for objects.
author Atul Varma <varmaa@toolness.com>
date Sun, 30 Aug 2009 17:00:33 -0700
parents 28d067082390
children 3fadba042201
comparison
equal deleted inserted replaced
162:d1606a6cf1c0 163:4edaa0e6f382
83 through the execution of JS code, but this type object can be used 83 through the execution of JS code, but this type object can be used
84 with Python&#8217;s built-in <tt class="xref docutils literal"><span class="pre">isinstance()</span></tt> to verify that an 84 with Python&#8217;s built-in <tt class="xref docutils literal"><span class="pre">isinstance()</span></tt> to verify that an
85 object is a JS object, like so:</p> 85 object is a JS object, like so:</p>
86 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span> <span class="o">=</span> <span class="n">pymonkey</span><span class="o">.</span><span class="n">Runtime</span><span class="p">()</span><span class="o">.</span><span class="n">new_context</span><span class="p">()</span><span class="o">.</span><span class="n">new_object</span><span class="p">()</span> 86 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">obj</span> <span class="o">=</span> <span class="n">pymonkey</span><span class="o">.</span><span class="n">Runtime</span><span class="p">()</span><span class="o">.</span><span class="n">new_context</span><span class="p">()</span><span class="o">.</span><span class="n">new_object</span><span class="p">()</span>
87 <span class="gp">&gt;&gt;&gt; </span><span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">pymonkey</span><span class="o">.</span><span class="n">Object</span><span class="p">)</span> 87 <span class="gp">&gt;&gt;&gt; </span><span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">pymonkey</span><span class="o">.</span><span class="n">Object</span><span class="p">)</span>
88 <span class="go">True</span>
89 </pre></div>
90 </div>
91 <p>Note that <a title="pymonkey.Object" class="reference" href="#pymonkey.Object"><tt class="xref docutils literal"><span class="pre">Object</span></tt></a> and all its subclasses are
92 identity-preserving when passed between Python-land and
93 JS-land. For instance:</p>
94 <div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">cx</span> <span class="o">=</span> <span class="n">pymonkey</span><span class="o">.</span><span class="n">Runtime</span><span class="p">()</span><span class="o">.</span><span class="n">new_context</span><span class="p">()</span>
95 <span class="gp">&gt;&gt;&gt; </span><span class="n">obj1</span> <span class="o">=</span> <span class="n">cx</span><span class="o">.</span><span class="n">new_object</span><span class="p">()</span>
96 <span class="gp">&gt;&gt;&gt; </span><span class="n">obj2</span> <span class="o">=</span> <span class="n">cx</span><span class="o">.</span><span class="n">evaluate_script</span><span class="p">(</span><span class="n">obj1</span><span class="p">,</span> <span class="s">&#39;this&#39;</span><span class="p">,</span> <span class="s">&#39;&lt;string&gt;&#39;</span><span class="p">,</span> <span class="mf">1</span><span class="p">)</span>
97 <span class="gp">&gt;&gt;&gt; </span><span class="n">obj1</span> <span class="ow">is</span> <span class="n">obj2</span>
88 <span class="go">True</span> 98 <span class="go">True</span>
89 </pre></div> 99 </pre></div>
90 </div> 100 </div>
91 <dl class="method"> 101 <dl class="method">
92 <dt id="pymonkey.Object.get_runtime"> 102 <dt id="pymonkey.Object.get_runtime">