how come .insert() don't work

David M. Cooke cookedm+news at
Thu Oct 28 05:46:58 CEST 2004

Bennie <bennie at> writes:
> Martin v. Löwis wrote:
>> Bennie wrote:
>>> def tekst_in(self, tag):
>>>         tekst_tag={'p': '\t\t<p>\n\n\t\t</p>\n', 'br': '<br />'}
>>>         self.tekst.insert(INSERT, tekst_tag[tag])
>>> Then I get a AttributeError...
>>> I seached the net, can come op white a answer.
>> What specific attribute is mentioned in the AttributeError?
>> That self has no attribute tekst, or that self.tekst has
>> no attribute insert?
>> If the former, you need to arrange your class so that self has
>> an attribute tekst (e.g. by initializing tekst in __init__).
>> If the latter: what kind of thing is self.tekst?
>> Regards,
>> Martin
> self.tekst is a Tkinter.Text() so it has a insert attribute, .insert()

See, you should have mentioned that before. What you should also
mention is:

1) the _exact_ text of the traceback. Saying "I get an AttributeError"
   is not nearly enough: the full message has info that
   people-in-the-know know how to interpret. Copy-and-paste it.

2) the smallest (or so) of *working* code that will exhibit the error.
   The snippet in your original post doesn't work. Again, copy-and-paste.

Basically, put enough info in your question that we don't have to read
your mind.

Now I'll put my mind-reading cap on...

- Are you sure that tekst_in() is a method, not a function? The
  indentation suggests function, while the self parameter suggests method.

- Are you positive self.tekst is a Tkinter.Text()? Throw in some
  print statements to check. 'print repr(self)' is a good one.

- tekst_tag[tag] shouldn't be the problem (as suggested by your
  original post), as that would raise a KeyError, not an AttributeError.


(I'll bet once you've done what I've suggested, you'll have found the bug...)

|David M. Cooke

More information about the Python-list mailing list