[Tutor] Text Boxes - deleting and inserting

seanf at email.arizona.edu seanf at email.arizona.edu
Sun Oct 24 01:36:14 CEST 2004


Very cool. Thanks!

- Sean

Quoting Danny Yoo <dyoo at hkn.eecs.berkeley.edu>:

>
>
> On Fri, 22 Oct 2004 seanf at email.arizona.edu wrote:
>
> > First of all a quick intro: My name is Sean Fioritto. I'm a CS major at
> > the University of Arizona. My dad has been trying to get me to learn
> > Python since my freshman year...about 3 years ago. I was finally able to
> > put all the books he gave me to use because we're using Python in my AI
> > class - and I have to say that if it were possible to have a crush on a
> > programming language, I would be drooling over Python at this point.
>
>
> Hi Sean,
>
> Welcome aboard!  Glad that you're enjoying Python.
>
>
>
> > Here's the error (m is a model object):
> >
> > >>> v = CritterView.cView()
> > >>> v.update(m)
> >
> > Traceback (most recent call last):
> >   File "<pyshell#26>", line 1, in -toplevel-
> >     v.update(m)
> >   File "C:\home\projects\CritterView.py", line 18, in update
> >     self.delete(1.0, END)
> > NameError: global name 'END' is not defined
>
>
>
> Ah, this one isn't too bad.  END is defined in the Tkinter module, so you
> either need to fully qualify it:
>
>     self.delete(1.0, Tkinter.END)
>
>
> or yank it into the namespace, during the import:
>
>     from Tkinter import Text, END
>
>
>
> On a side note, there's a block of code here that can be improved:
>
> >         self.s = ""
> >         for self.i in range(self.myWidth):
> >             for self.j in range(self.myHeight):
> >                 self.s = self.s + model.getChar(self.i, self.j)
> >             self.s = self.s + '\n'
>
>
> Repeated string concatentation can be expensive, depending on how large
> self.myWidth and self.myHeight gets.
>
> You may want to use a "buffer"  approach to accumulate that string
> variable instead. In Java, there's a java.lang.StringBuffer class that's
> designed for doing this kind of accumulation.  Python has a similar
> feature that using a string's built-in join() method:
>
> ###
> >>> buffer = []
> >>> buffer.append("hello, this is")
> >>> buffer.append("\n")
> >>> buffer.append("a test")
> >>> ''.join(buffer)
> 'hello, this is\na test'
> ###
>
>
> I hope this helps!
>
>


--
Albert Einstein, when asked to describe radio, replied:
"You see, wire telegraph is a kind of a very, very long cat. You pull his tail
in New York and his head is meowing in Los Angeles. Do you understand this?
And radio operates exactly the same way: you send signals here, they receive
them there. The only difference is that there is no cat."




More information about the Tutor mailing list