How modules work in Python
Larry Hudson
orgnut at yahoo.com
Wed Nov 19 02:44:39 EST 2014
More information about the Python-list mailing list
Wed Nov 19 02:44:39 EST 2014
- Previous message (by thread): How modules work in Python
- Next message (by thread): How modules work in Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 11/18/2014 12:59 PM, sohcahtoa82 at gmail.com wrote: > On Tuesday, November 18, 2014 12:14:15 AM UTC-8, Larry Hudson wrote: >> First, I'll repeat everybody else: DON'T TOP POST!!! >> >> On 11/16/2014 04:41 PM, Abdul Abdul wrote: >>> Dave, >>> >>> Thanks for your nice explanation. For your answer on one of my questions: >>> >>> *Modules don't have methods. open is an ordinary function in the module.* >>> >>> Isn't "method" and "function" used interchangeably? In other words, aren't they the same thing? >>> Or, Python has some naming conventions here? >>> >> >> You've already received answers to this, but a short example might clarify the difference: >> >> #------- Code -------- >> # Define a function >> def func1(): >> print('This is function func1()') >> >> # Define a class with a method >> class Examp: >> def func2(self): >> print('This is method func2()') >> >> # Try them out >> obj = Examp() # Create an object (an instance of class Examp) >> func1() # Call the function >> obj.func2() # Call the method through the object >> func2() # Try to call the method directly -- Error! >> #------- /Code -------- >> >> This code results in the following: >> >> This is function func1() >> This is method func2() >> Traceback (most recent call last): >> File "fun-meth.py", line 14, in <module> >> func2() >> NameError: name 'func2' is not defined >> >> -=- Larry -=- > > You COULD have something like this though: > > # --- myModule.py --- > def myFunc(): > print 'myFunc' > > > # --- main.py --- > import myModule > myModule.myFunc() > > > In this case, myFunc LOOKS like a method when it is called from main.py, but it is still a function. > My purpose was to give a _simple_ example of the difference in the two terms: that a function is called directly and a method is called through an object. Your example may _look_ the same (it uses the same dot syntax), but here it is to resolve a namespace -- a module is not an object. So yes, this is still a function and not a method. But we're getting rather pedantic here. -=- Larry -=-
- Previous message (by thread): How modules work in Python
- Next message (by thread): How modules work in Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list