You have defined __name as a class attribute, so it belongs to the class, 
not to individual instances of it. Instead, just use self.__name if you 
want the name to be associated with a particular instance of the class.

Anthony

On Thursday, January 21, 2016 at 5:24:00 PM UTC-5, killzane wrote:
>
> I write a class in modules, and create instance in controller.
> But whatever I create different variable, they point to same instance.
> May I create new instance when page reload?
>
> here is the class
> # -*- coding: utf-8 -*-
> from gluon import current
>
> class Project:
> __name = None
>
> def __init__(self, id):
> db = current.db
> project = db(db.project.id == id).select().first()
> self.__name = project.name
> @classmethod
> def setName(cls, name):
> cls.__name = name
> pass
> @classmethod
> def getName(cls):
> return cls.__name
> pass
>
> and here is the controller
> def classTest():
>     myObj = Project(5)
>     myObj2 = Project(4)
>     # myObj2.setName("abcxxx")
>     # myObj.setName("defxxx")
>     return myObj2.getName()
>
> whatever I return myObj.name or myObj2.name the answer is "defxxx".
> so how could I do for it?
>
> thanks.
>

-- 
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 the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to