[Tutor] get name of calling class at runtime

Alan Gauld alan.gauld at btinternet.com
Sat Aug 22 01:02:13 CEST 2009


"Serdar Tumgoren" <zstumgoren at gmail.com> wrote 

> Meantime, how do I pass "self" to DataSources?
> 
> Do I literally just pass in the word "self" from inside the calling
> object? Apologies for the confusion -- I've never used that technique
> before and it's bending my brain a little:)

self is just a reference to the current object.
Thus when you write:

class C:
   def f(self): pass

and call it with

c = C()
c.f()

you are effectively calling 

C.f(c)

ie self takers on the value of the current instance.

Thus inside f() if you hasd a line

DataSources.getData(self)

you would pass the instance of C to DataSources.
(and you can use isInstance() to check its type).

But unless you have a really good reason its still better 
to get the class to do its own SQL. IMHO.

-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/



More information about the Tutor mailing list