On Thu, Sep 22, 2016 at 8:35 PM, Ben Finney <ben+pyt...@benfinney.id.au> wrote: > Peng Yu <pengyu...@gmail.com> writes: > >> On Wed, Sep 21, 2016 at 11:14 PM, Ben Finney <ben+pyt...@benfinney.id.au> >> wrote: >> > [Importing ‘*’ from a module] will also make the names in the code >> > impossible to automatically match against where they came from. >> > Explicit is better than implicit; you are proposing to make an >> > unknown horde of names in the code implicit and untraceable. >> >> This will make refactoring easy. If everything is explicit, when one >> do refactoring, at two places need to be changed which can be a >> burden. > > That's completely backward: Importing ‘*’ from the module makes > refactoring significantly *more* difficult. > > With explicit ‘import foo; foo.lorem()’, an automated tool can know that > when ‘lorem’ changes to a different name, this module's use of > ‘foo.lorem’ should also change.
Is there such a good automated tool for python refactoring? > With non-explicit ‘from foo import *; lorem()’, then an automated too > has *no way* of knowing that ‘lorem’ should change when you alter that > name in the ‘foo’ module. > > So no, what you say above is the opposite of correct. Instead, using > star import makes a rename *more* difficult to do correctly. > > -- > \ “Faith is generally nothing more than the permission religious | > `\ people give to one another to believe things strongly without | > _o__) evidence.” —Sam Harris, _Letter to a Christian Nation_ 2006 | > Ben Finney > > -- > https://mail.python.org/mailman/listinfo/python-list -- Regards, Peng -- https://mail.python.org/mailman/listinfo/python-list