On Fri, 2009-09-11 at 00:43 -0700, Chris Rebert wrote: > On Fri, Sep 11, 2009 at 12:40 AM, Kermit Mei <kermit....@gmail.com> wrote: > > On Fri, 2009-09-11 at 00:33 -0700, Chris Rebert wrote: > >> On Fri, Sep 11, 2009 at 12:30 AM, Kermit Mei <kermit....@gmail.com> wrote: > >> > Dear all, > >> > I'm a newbie for python, and I write a program to test how to > >> > implement a class: > >> > > >> > #!/usr/bin/env > >> > python > >> > > >> > class Test: > >> > 'My Test class' > >> > def __init__(self): > >> > self.arg1 = 1 > >> > > >> > def first(self): > >> > return self.arg1 > >> > > >> > t1 = Test > >> > >> You missed the parentheses to call the constructor. That line should be: > >> > >> t1 = Test() > >> > >> Cheers, > >> Chris > > > > > > Yes, that can run. But If I put the following code into Test.py : > > #!/usr/bin/env python |>>> > > | > > class Test: | > > 'My Test class' | > > def __init__(self): | > > self.arg1 = 1 | > > | > > def first(self): | > > return self.arg1 | > > | > > def setFirst(self,value = 5): | > > self.arg1 = value > > > > But when I want to run it as a module, something also be wrong: > > > > $ python > > Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) > > [GCC 4.3.3] on linux2 > > Type "help", "copyright", "credits" or "license" for more information. > >>>> import Test > >>>> t1 = Test() > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > TypeError: 'module' object is not callable > > You've imported the module `Test`, whose name is determined by the > filename (Test.py). > To access the class of the same name (`Test`) that is defined in the > module, you need to use the dot operator: > > >>>> import Test > >>>> t1 = Test.Test() > > You should probably use different names for the module/file and the > class to avoid confusion. > Unlike Java, Python does not observe a direct correspondence between > filenames and classes. > > Cheers, > Chris > --
Oh, yep! Thanks, Cheers. Can you tell me how can I write __init__.py for modules: I have a directory like this: $ tree . `-- main |-- MyTestModules | |-- Test1.py | `-- Test2.py `-- main.py 2 directories, 3 files In main.py, I want to run the following code: #!/usr/bin/env python import MyTestModules t1 = Test1() t2 = Test2() print t1.first() print t2.first() ################################### The classes Test1 and Test2 just be similar with the Test that I showed before. To run main.py correct, how can I orgnize the code under directory MyTestModules. (May need a __init__.py file under MyTestModules, but I don't know how to write it) Thank you,very much! Regards Kermit -- http://mail.python.org/mailman/listinfo/python-list