The rule of thumb with Python imports is to avoid name clashes. This is why
you sometimes see people advise against *from import* style.
This is especially true if your modules are too generic (which cmds
certainly is).

In general stay away from *from import ** unless the API you are using
explicitly says it's ok to do so (ex. TkInter).
Another exception is if you have a specific purpose for doing so, like
setting up a settings scheme using python files (ex. Django).

So your choice often depends on what libraries you're working with, where
and how you expect your code to be used and finally personal preference.

I think this sums it up pretty well:

> *Use import x for importing packages and modules.
> Use from x import y where x is the package prefix and y is the module
> name with no prefix.
> Use from x import y as z if two modules named y are to be imported or if y is
> an inconveniently long name.
> Do not use relative names in imports. Even if the module is in the same
> package, use the full package name. This helps prevent unintentionally
> importing a package twice.*




On Tue, Oct 2, 2012 at 11:47 PM, Paul Molodowitch <[email protected]>
wrote:
> Hmm... if it's a deep hierarchy, i generally prefer
>
> import my.module.hierararchy.wantedModule as wantedModule
>
> ...as opposed to having to use the full hierarchy all the time. It's still
> easily discoverable where it came from, you can still do easy
search/replace
> if needed, etc.
>
> As for
>
> from maya import cmds
>
> vs
>
> import maya.cmds as cmds
>
> ... I tend to prefer the second, because it makes it clear that maya.cmds
is
> a module.  Ie, if you do:
>
> from maya import cmds
>
> ...cmds could be anything - a function, a dictionary, a module, etc.  It
> also has the added bonus that if you ever want to do text searches through
> your code base, you still have the whole module name in one piece - ie, it
> will be found if you just search for "maya.cmds".  (Of course, if you want
> to be certain you found all uses of a given module, you need to search for
> both forms... but still, I find it nice.)
>
> Just my 2 cents...
>
> - Paul
>
>
> On Tue, Oct 2, 2012 at 11:16 PM, Marco D'Ambros <[email protected]>
> wrote:
>>
>> I'm for the second one
>> from maya import cmds
>>
>> I don;t see the point to use
>> import maya.cmds as cmds
>>
>> --------------------------------
>> Marco D'Ambros
>> phone : (+61) (0) 435809628
>> web    : www.marcodambros.com
>> mail    : [email protected]
>>
>>
>>
>> On Wed, Oct 3, 2012 at 11:44 AM, Jesse Kretschmer <[email protected]> wrote:
>>>
>>> I would certainly advise against "from bigpackage import *" as the
>>> wildcard could lead to namespace collision and general funny business.
>>>
>>> Let me hijack this topic with another question about imports.  Which is
>>> more correct; "import maya.cmds as cmds" or "from maya import cmds"?  I
>>> prefer the latter, but mostly because it is fewer keystrokes.
>>>
>>>
>>> On Tue, Oct 2, 2012 at 6:09 PM, Justin Israel <[email protected]>
>>> wrote:
>>>>
>>>> Why do these sites advise against "from ... import ..."?
>>>>
>>>>
>>>> On Oct 2, 2012, at 5:01 PM, Python inside Maya <[email protected]>
>>>> wrote:
>>>>
>>>> I would love to hear some thoughts on handling python imports,
>>>> specifically in larger code depots with deeper hierarchies.
>>>> The way I see it, the safest way to go is to import
>>>> company.teamA.whatever.module
>>>>
>>>> The big draw back that I see is that the code becomes bloated with
>>>> company.teamA.whatever.module.class().method()
>>>> From that perspective - from company.teamA.whatever import module -
>>>> seems like a better choice
>>>> Then code reads module.class().method()
>>>>
>>>> This gets more and more problematic, the deeper the code depot
hierarchy
>>>> is/gets. When reading up on Python imports several sites advice against
>>>> using the from-import technique.
>>>> Any input is appreciated,
>>>>
>>>> Thanks,
>>>> /Christian
>>>>
>>>> --
>>>> view archives: http://groups.google.com/group/python_inside_maya
>>>> change your subscription settings:
>>>> http://groups.google.com/group/python_inside_maya/subscribe
>>>>
>>>> --
>>>> view archives: http://groups.google.com/group/python_inside_maya
>>>> change your subscription settings:
>>>> http://groups.google.com/group/python_inside_maya/subscribe
>>>
>>>
>>> --
>>> view archives: http://groups.google.com/group/python_inside_maya
>>> change your subscription settings:
>>> http://groups.google.com/group/python_inside_maya/subscribe
>>
>>
>> --
>> view archives: http://groups.google.com/group/python_inside_maya
>> change your subscription settings:
>> http://groups.google.com/group/python_inside_maya/subscribe
>
>
> --
> view archives: http://groups.google.com/group/python_inside_maya
> change your subscription settings:
> http://groups.google.com/group/python_inside_maya/subscribe



-- 
Technical Director @ DreamWorks Animation

-- 
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings: 
http://groups.google.com/group/python_inside_maya/subscribe

Reply via email to