fire a dev inside a class from a dialog class

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.