Error lling a variable from class method

38 views
Skip to first unread message

Maurice Waka

unread,
Jun 19, 2014, 8:42:20 AM6/19/14
to web...@googlegroups.com

Am working on a simple game/app. When I call a variable on web2py view, I get this error:

quack= duck.quack()
TypeError: unbound method quack() must be called with duck instance as first argument (got nothing instead)

my codes are here: In the module module

from gluon import *
class duck():
    def quack():
        return 'Quacks like a duck'
    def walk():
        return 'Walks like a person'

In the controller

def data_filters():
    fils = duck.quack()
    return dict(fils=fils) 

In the view:

{{extend 'layout.html'}}

{{=fils}}

Leonel Câmara

unread,
Jun 19, 2014, 12:34:39 PM6/19/14
to web...@googlegroups.com
Try this in modules

class Duck():
    def quack(self):
        return 'Quacks like a duck'
    def walk(self):
        return 'Walks like a person'

Then in the controller

def data_filters():
    duck = Duck()
    fils = duck.quack()
    return dict(fils=fils)






Anthony

unread,
Jun 19, 2014, 12:42:05 PM6/19/14
to web...@googlegroups.com
Even better:

class Duck(object):

Maurice Waka

unread,
Jun 21, 2014, 7:55:26 AM6/21/14
to web...@googlegroups.com
I noted that my methods were static and all i needed was to do this:

@staticmethod
def quack():
    code


This worked

Thanks anyway for the help


--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to a topic in the Google Groups "web2py-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/web2py/zWGI68D2VDA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to web2py+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Dr Maurice Waka, MBCHB.
Nairobi
Reply all
Reply to author
Forward
0 new messages