Question #690684 on Yade changed:
https://answers.launchpad.net/yade/+question/690684

    Status: Open => Answered

Jan Stránský proposed the following answer:
TLTR: 
- put all attributes in "simple brackets"
- use .def and .staticmethod to use C++ functions in python and therefore to 
enable python testing

More details:
"simple brackets":
it is inside a macro, that makes the values public attributes of the class. You 
can then access them from the class and also from other parts of the C++ code. 
It has also other advantages:
- readable / assignable from python
- adds python docstrings
- adds it to automatically built documentation
- saved / loaded with O.save / O.load
- ... ?

.def, .staticmethod
is to expose methods (functions) to python (referenced are already 
existing/declared methods, e.g. funcG)

.def_readonly:
in python it is to return values of the class attributes, but you cannot set 
them from python.
("simple brackets" can be both read and assigned)
References existing objects, e.g. omega.
The point is to prevent accidental change of some "computed" values. E.g. omega 
is a function of kappaD, so changing omega alone is not meaningful.
It has disadvantage that it is not saved / loaded with O.save / O.load
Do not bother with .def_readonly for now.

cheers
Jan

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to