Re: Access from one class to methode of other class
Available news archives: comp.lang.tcl - comp.lang.python - comp.security.firewalls - sci.crypt - comp.lang.php - comp.lang.javascript
Google
 
Web news.hping.org


comp.lang.python archive

Re: Access from one class to methode of other class

From: VK <@example.invalid>
Date: Thu May 26 2005 - 18:51:20 CEST

> On Thu, 26 May 2005 14:33:45 +0200, VK <"myname"@example.invalid>
> declaimed the following in comp.lang.python:
>
>
>>Hi, all!
>>
>>In my programm i have to insert a variable from class 2 to class 1 and I
>>get error NameError: global name 'd' is not defined. How do I get access
>>to d.entry.insert() method of class 1
>>
>>class 1:
>
> <shudder> Does Python even allow numeric class names?

:-D don't know

>
> REAL code, stripped to the minimum that duplicates your problem,
> is always better than pseudo-code...

I thought that is it...

>
>
>> self.entry = Entry(self.entryframe)
>> self.entry.pack()
>>
>> self.button = Button(command = self.callclass2window)
>>
>> def callclass2window
>> c = 2()
>>
>>
>>class 2:
>> def ins(self)
>
> NO : ???
>
>
>> d.entry.insert(variable)
>>
>>
>>d = 1()
>
>
> What, might I ask, does .insert() /do/ for an Entry() object?

That insert text into entry object.

>
> As far as I can tell, "class 1" is creating some GUI button.
> Pressing that button invokes your callclass2window(), which creates a
> new "class 2" instance, and then throws it away.

Yes, exactly

>
> Give us code that we can /run/ and we might be able to give you
> an answer...

I try:

from Tkinter import *

class First:
         def __init__(self):
             self.root = Tk() # create window contents as children to
root..
             self.entryframe = Frame(self.root)
             self.entryframe.pack(fill=BOTH,expand=1)

             self.entry = Entry(self.entryframe)
             self.entry.pack(side=TOP,expand=1,fill=BOTH)
             self.entry.focus()
             self.entry.bind('<Return>',(lambda event: self.fetch())) #
on enter key

             self.button =
Button(self.entryframe,text="Call",command=self.getvar)
             self.button.pack(side=LEFT,expand=YES,fill=BOTH)

             self.root.mainloop()

         def fetch(self):
             print 'Input => "%s"' % self.entry.get() # get text form entry

         def getvar(self,event=0):
             c=Second(self,self.root)

class Second:
     def __init__(self,parent,s="thing"):
         self.root = Tk()
         self.ent = Entry(self.root)
         self.ent.pack()
         self.btn = Button(self.root,text='Fetch',command=self.fetch)
         self.btn.pack(side=RIGHT)
     def fetch(self):
             text = self.ent.get() # get text form entry in this window
             d.entry.insert(0, text)# must insert in other window

d = First() #First window
Received on Thu Sep 29 16:14:26 2005