Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
 
20.9.2014 - We have just updated our course layouts and descriptions and added our 2015 schedule.

Should I use from or import?

Posted by enquirer (enquirer), 11 January 2006
I can load extra code in Python using both from and import.  Why does Python provide two ways of doing what looks like a very similar operation, and which is best to use?

Posted by admin (Graham Ellis), 11 January 2006
from loads all or some of the names from a .py file into the current name space.

import loads the names from a .py into their own name space (being the same as the name of the file from which their loaded).

If you use from, you'll overwrite any names that happen to conflict with you current name space, and you'll grow the number of names in that name space - perhaps to the extent that it becomes unmanagable.  However, if you use from you save having to add a lot of extra namespace. code.

General advise - use from sparingly, and for things that you need to lead in and refer to many, many times.  Use import by default.



Posted by admin (Graham Ellis), 11 January 2006
Just to add - an example ...

Code:
import fred

print fred
print fred.fred
print fred.fred.snibbo

print fred.john()
print fred.fred()


is the equivalent of:

Code:
from fred import *

print fred
print fred.snibbo

print john()
print fred()


You'll note that the second example is much shorter and easier to read BUT that it would give you a name conflict if you already had objects called john or fred in you main name space.




This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2014: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho