<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Dear Dennis,&nbsp;<div><br></div><div>I think you are confused by the fact that execution order might not be cell order.&nbsp;</div><div><br></div><div><div>Rule of thumb, when you have strange behavior, restart the kernel, and execute things linearly on your notebook.</div><div>and check that it is reproducible, with consecutive prompt number starting from 1.</div><div>Bonus, you can put your notebook on nbviewer to share, it's easier to test as we can download it.</div></div><div><br></div><div>You are starting by executing cell with prompt 29, that becomes cell 22 afterward.&nbsp;</div><div>So you probably restarted your kernel in the meantime, i.e. what is shown can not reflect the status of the kernel</div><div>so it is harder to interpret.&nbsp;</div><div><br></div><div>Here it was meaning that the student2 when you &lt;tab&gt; is NOT the same object before and after you execute cell 29.&nbsp;</div><div><br></div><div>Second, &lt;bound methods&gt; is not an error, you are calling a method so you should add the () to get the result, or make it a property. Otherwise the return value is the repr of a function.</div><div><br></div><div>Once You changed student2 after executing &nbsp;cell 29 (now 22) it is normal to have the completion.&nbsp;</div><div><br></div><div><br></div><div>I'll recall your execution temporarily in pseudo-python.</div><div><br></div><div>------</div><div>class student:&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>property : attend</div><div><br></div><div>student1 = new Student()</div><div>student2 = newStudent()</div><div>----</div><div>then&nbsp;</div><div>----</div><div><div>class student:&nbsp;</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>property : attend</div></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>method : attendDay</div><div>----</div><div>Then try to complete student2 (obviously no attendDayMethod)</div><div>An execute the following (which recreate student 2)</div><div>----</div><div>student2 = new Student(Mikeasdasd)</div><div>student2.attendDay</div><div>----</div><div>Which show that&nbsp;student2.attendDay is a method of student object … nothing storage about</div><div>try attendDay On student1… of course does not existm still count to first defined class.&nbsp;</div><div>----</div><div>try to complete on student2, which is new class, of course you get the new attribute.</div><div>----</div><div><br></div><div>So I don't see where the problem is, this a perfect valid python behavior.&nbsp;</div><div>You are just confused py the order in which you created class and object.&nbsp;</div><div><br></div><div>--&nbsp;</div><div>Matthias</div><div><br></div><div><br></div><div><br></div><div><br><div><div>Le 19 mars 2013 à 17:29, Dennis Daniels a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite">Hello Thomas,&nbsp;<div>I reloaded the ipython3 and the ipynb and was still throwing the "the no attribute " error but then, the attributes started to show up! Very strange.</div><div><br></div><div>You'll see the same behavior in the video.</div>

<div><a href="http://youtu.be/U3RmySQLtgM">http://youtu.be/U3RmySQLtgM</a> @ 1:17</div><div><br></div><div>thanks</div><div>Dennis</div><div><br></div><div><br></div><div><br></div><div><div><br>
</div>
</div>
_______________________________________________<br>IPython-User mailing list<br><a href="mailto:IPython-User@scipy.org">IPython-User@scipy.org</a><br>http://mail.scipy.org/mailman/listinfo/ipython-user<br></blockquote></div><br></div></body></html>