Something like the getattr() trick.
Gabriel Genellina
gagsl-py at yahoo.com.ar
Sat Feb 10 18:50:35 EST 2007
On 2/10/07, Ayaz Ahmed Khan <ayaz at dev.slash.null> wrote:
>> class Vuln:
>>
>> class VulnInfo(Vuln):
>>
>> class VulnDiscuss(Vuln):
>>
>> def main(url):
>> vuln_class = ['Info', 'Discuss']
>> vuln = Vuln(url)
>> vuln._parse()
>> for link in vuln.get_link():
>> i = VulnInfo(link)
>> i._parse()
>> d = VulnDiscuss(link)
>> d._parse()
>>
>>
>> Is there a way to get references to VulnInfo and VulnDiscuss objects
In addition to what other people has suggested:
- Use some kind of registry:
register("Vuln", Vuln, VulnInfo, VulnDiscuss)
(a dictionary would do) and then look up by name
- If all three classes are contained inside the same module, look up them
by name into globals: InfoClass = globals()["%sInfo" %
self.__class__.__name__]
(assuming self is an instance of Vuln, this would give you the VulnInfo
class)
- Replace your line: vuln_class = ['Info', 'Discuss']
with vuln_class = [VulnInfo, VulnDiscuss]
As you see, there are many ways to do that - choose what better fits your
needs.
--
Gabriel Genellina
More information about the Python-list
mailing list