How to call module functions inside class instance functions?
Lawrence Oluyede
raims at dot.com
Sat Aug 18 21:27:42 EDT 2007
beginner <zyzhu2000 at gmail.com> wrote:
> I have encountered a small problems. How to call module functions
> inside class instance functions? For example, calling func1 in func2
> resulted in a compiling error.
>
> "my module here"
>
> def func1():
> print "hello"
>
> class MyClass:
> def func2():
> #how can I call func1 here.
> func1() #results in an error
rhymes at groove ~ % cat t.py
def func1():
print "hello"
class MyClass:
def func2():
func1()
rhymes at groove ~ % python -c "import t"
rhymes at groove ~ %
As you can see there no compiling error, because the syntax is correct,
you'll eventually get a runtime error like this:
>>> import t
>>> c = t.MyClass()
>>> c.func2()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: func2() takes no arguments (1 given)
That's because you left out the "self" argument in the definition of
"func2()". This version is correct:
--
def func1():
print "hello"
class MyClass(object):
def func2(self):
func1()
c = MyClass()
c.func2()
--
rhymes at groove ~ % python tcorrect.py
hello
HTH
--
Lawrence, oluyede.org - neropercaso.it
"It is difficult to get a man to understand
something when his salary depends on not
understanding it" - Upton Sinclair
More information about the Python-list
mailing list