"Ray Parrish" <c...@cmc.net> wrote

I am working on some stuff, and I would like to be able to write a module which can be imported, and after it's been imported I would like to be able to access it's functions as methods.

OK, Kind of...

In other words, if I do the import of module ISPdetector, I want to then be able to make calls like the following -

   ipAddress = "123.123.123.123"
   emails = ipAddress.GetEmailAddresses()

This won;t work since ipAddress is a string and you can't add methods to a builtin type.

But you could define a new special type of string class - an IPstring say - and
add methods to that. Put that definition in a module and you code becomes:

import ispdetector

ipAddress = ispdetector.IPstring("123.123.123.123") # use module to access the class emails = ipAddress.getEmailAddresses() # use the locally created instance to access methods

where GetEmailAddresses() is defined in module ISPdetector. Do I just wite that function in ISPdetector.py as a normally deffed function, or does it have to be part of a class within the module?

If you want to use it as a method it needs to be in a class. You could just write it as a function that hass a string parameter in which case your code looks like:

import ispdetector

ipAddress = "123.123.123.123"
emails = ispdetector.getEmailAddresses(ipAddress) # use the module and pass the strintg

Whether you need a class or not depends on what the restof your code is doing and how data is being handled/stored etc. But we don;t have enough information to be sure. My guess is that a class will be handy because you will likely need several such methods all acting on common data - which is the definition of a class!

HTH,

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

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to