Hi all,
First of all, thanks for this great tool - it has detected many serious bugs in my Python code. Now to the issue at hand: Running pylint 0.18.1 (with Python 2.5.4, logilab_astng-0.19.1 and logilab_common-0.44.0) for the attached test.py generates following error (E1101 I believe): E: 37:DataManager.TestFunc: Instance of 'DataManager' has no 'project' member This message is generated for the last line of the following snippet: class DataManager(object): def __init__(self): self.app = get_active_application() def TestFunc(self): app = self.app print app.project As you can see, it incorrectly reports app as DataManager instance (it is be Application instance instead - see the attached file). Also, Application class in fact has a 'project' member variable. Code itself has commented-out demonstration how to work around this error message - essentially it comprises of not using global function to acquire the Application instance. Thanks, Jaakko Salli
active_application = None def get_active_application(): global active_application return active_application class Application(object): def __init__(self): global active_application active_application = self self.project = None class Project(object): def __init__(self): pass class DataManager(object): def __init__(self, app=None): # # This causes error to be generated. Using "self.app = app" # instead will not. # self.app = get_active_application() #self.app = app print app # Suppress possible unused variable warning def TestFunc(self): app = self.app print app.project def main(): app = Application() app.project = Project() data_manager = DataManager(app) data_manager.TestFunc() main()
_______________________________________________ Python-Projects mailing list Python-Projects@lists.logilab.org http://lists.logilab.org/mailman/listinfo/python-projects