Bugs item #493628, was opened at 2001-12-15 03:37 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=105470&aid=493628&group_id=5470 Category: Python Interpreter Core Group: Not a Bug Status: Closed Resolution: Wont Fix Priority: 5 Submitted By: Chris Withers (fresh) Assigned to: Nobody/Anonymous (nobody) Summary: import not pythonic in 2.1.1 Initial Comment: Take a package 'aPackage', which contains a sub-package 'aSubPackage' that in turn contains a module 'aModule' that defines a class 'aClass'. If I do: import aPackage.aSubPackage print aPackage.aSubPackage.aModule I get: Traceback (most recent call last): File "x.py", line xx, in ? print aPackage.aSubPackage.aModule AttributeError: 'aPackage.aSubPackage' module has no attribute 'aModule' A yet, if I do: import aPackage.aSubPackage.aModule print aPackage.aSubPackage.aModule I get: <module 'aPackage.aSubPackage.aModule' from 'some_path'> ...as expected, which is very confusing and doesn't feel 'right' :-S ---------------------------------------------------------------------- >Comment By: Chris Withers (fresh) Date: 2001-12-16 04:58 Message: Logged In: YES user_id=24723 Well, I read it, and it explains the history, but it doesn't give reasons, particularly for: > Contrarily, when using syntax like import item.subitem.subsubitem, each item except for the last must be a package; the last item can be a module > or a package but can't be a class or function or variable defined in the previous item. ...or for the above stuff. But, while I find it counter-intuitive (and means I have to use unpleasant exec statements), I am but one voice among many who probably feel differently so I'll just accept it as one of the things i don't like about python... thanks for your time :-) Chris ---------------------------------------------------------------------- Comment By: Guido van Rossum (gvanrossum) Date: 2001-12-15 09:46 Message: Logged In: YES user_id=6380 http://www.python.org/doc/essays/packages.html ---------------------------------------------------------------------- Comment By: Chris Withers (fresh) Date: 2001-12-15 09:15 Message: Logged In: YES user_id=24723 Okay, if it's intended, that means there's a good reason for it... ...where can I look for enlightenment as to what that is? cheers, Chris ---------------------------------------------------------------------- Comment By: Guido van Rossum (gvanrossum) Date: 2001-12-15 07:39 Message: Logged In: YES user_id=6380 Better adjust your intuition. :-) This is as intended. Attributes of packages that are *modules* are only loaded when the corresponding module is explicitly imported (by you, or by some other code, e.g. the package's __init__.py). ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=105470&aid=493628&group_id=5470
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4