'ActionData' object is not callable error
Hello,
I am attempting to make a class that manages the actions of a 3d avatar. I am new at python and vizard, so I may be missing something fundamental. Never the less, here is my problem: I define my class like so if a file called test1.py: import viz import vizact class testclass: def __init__(self): self.female = viz.add('vcc_female.cfg') self.face = viz.add('biohead_talk.vzf') self.female.setFace(self.face) self.female.state(14) self.female.translate(0.3,0.1,1) self.female.rotate(0,1,0,180) self.smile = smile = vizact.morph('smile', .5, .1) def smile(): self.face.add(self.smile) Then, in a second file, speech_test.py, I write the following: import viz import test1 viz.go() foo2 = testclass() foo2.smile() I then get the error File " File "speech_test2.py", line 18, in ? foo2.smile() TypeError: 'ActionData' object is not callable Can anyone tell me why this is happening and what I need to do to fix it? Thanks, Christian |
Oops, the above was unreadable - let me try again (and make a couple of corrections):
test1.py: mport viz import vizact class testclass: def __init__(self): self.female = viz.add('vcc_female.cfg') def smile(self): The rest should be ok (I was not passing self to smile, but upon adding self to the def, I still got the same error).self.face.add(self.smile) Thanks, Christian edit: it flattened everything again, so I used the indent feature this time . . . |
Please use the [code][/code] tags when posting code samples. It will preserve indentations.
The problem with your code is that you assign the smile action to a variable called smile which will overwrite the smile method. You need to give it a name that does not conflict with the smile method. |
All times are GMT -7. The time now is 12:45 AM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC