"John Machin" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > (a) module1 imports random and (MyClass from module2)
Right. > It's a bit of a worry that you call the first file "module1" and not > "the_script". Does module2 import module1, directly or indirectly? No. I call a module any file meant to be imported by others. Many of my modules include a "main" function, which allow the module to be executed as a script. I do not think this is unusual, even as terminology. > Should you not expect to get the same result each time? Is that not > the point of setting a constant seed each time you run the script? Yes. That is the problem. If I delete module2.pyc, I do not get the same result. > With all due respect to your powers of description :-) no, it can't be > explained properly, without seeing the contents of the source files. I sent them to you. What behavior did you see? > from random import seed > seed(314) > class Trivial: > pass > === > Is module2 ... doing that? > Is module1 importing itself (directly or indirectly)? No. Separate issue ============== > Here's a suggestion for how you should structure scripts: > > def main(): > # All productive code is inside a function to take advantage > # of access to locals being faster than access to globals > import mymodule > mymodule.do_something() > if __name__ == "__main__": > main() > else: > raise Exception("Attempt to import script containing nothing > importable") > > and your modules should *start* with: > if __name__ == "__main__": > raise Exception("Attempt to execute hopefully-pure module as a > script") I'm not going to call this a bad practice, since it has clear virtues. I will say that it does not seem to be a common practice, although that may be my lack of exposure to other's code. And it still does not address the common need of playing with a "package in progress" or a "package under consideration" without installing it. Cheers, Alan Isaac -- http://mail.python.org/mailman/listinfo/python-list