qualification works on all objects with attributesmodulesclassesc extension typesetc in part viwe'll see that attribute qualification means bit more for classes--it' also the place where something called inheritance happens--but in generalthe rules outlined here apply to all names in python imports versus scopes as we've learnedit is never possible to access names defined in another module file without first importing that file that isyou never automatically get to see names in another fileregardless of the structure of imports or function calls in your program variable' meaning is always determined by the locations of assignments in your source codeand attributes are always requested of an object explicitly for exampleconsider the following two simple modules the firstmoda pydefines variable global to code in its file onlyalong with function that changes the global in this filex def ()global my xglobal to this file only change this file' cannot see names in other modules the second modulemodb pydefines its own global variable and imports and calls the function in the first modulex my xglobal to this file only import moda moda (print(xmoda xgain access to names in moda sets moda xnot this file' when runmoda changes the in modanot the in modb the global scope for moda is always the file enclosing itregardless of which module it is ultimately called frompython modb py in other wordsimport operations never give upward visibility to code in imported files --an imported file cannot see names in the importing file more formallyfunctions can never see names in other functionsunless they are physically enclosing module code can never see names in other modulesunless they are explicitly imported module coding basics