Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 30/10/2015 at 17:12, xxxxxxxx wrote:
Hi all,
how can I start a def inside a class started from a def inside dialog class. I get a unbound python error.
thanks in advance.
some exmaple pseudocode
class dialog() : def maindialog() : worker.dosomething(dialogid=5) #error raised herer class worker() : dosomething(dialogid) : result = dialogid+10 return result
On 30/10/2015 at 17:30, xxxxxxxx wrote:
You are calling dosomething() with the class name alone, instead of with an instance of the class.
If that is really intended, you need to declare the method as @staticmethod.
import c4d class dialog() : @staticmethod def maindialog() : print worker.dosomething(dialogid=5) class worker() : @staticmethod def dosomething(dialogid) : result = dialogid+10 return result def main() : dialog.maindialog()
Prints "15".
On 31/10/2015 at 04:20, xxxxxxxx wrote:
thanks. and how do i call it with an instance of that class ? for your info I am winging it here
On 31/10/2015 at 07:26, xxxxxxxx wrote:
A method that is instance bound needs a parameter "self" so it can be called through instance.method(parameters) Then you can create a variable of the newly defined class, and call the methods on it:
import c4d class dialog() : def maindialog(self) : x = worker() print x.dosomething(dialogid=5) class worker() : def dosomething(self, dialogid) : result = dialogid+10 return result def main() : dlg = dialog() dlg.maindialog()
Nevertheless: These are totally basic Python concepts. If you struggle with these already, you should perhaps take a Python tutorial and familiarize yourself with Python and OOP concepts. I don't know whether you have any programming knowledge in some other language, but here is a tutorial that may be of help:
http://www.bogotobogo.com/python/python_introduction.php (There are tons of others on the web...)
"Winging it" will probably not do you any good if you need to ask for every little bit of information; this would make for a very frustrating experience.