Re: A question about funcation parameter and self defined object

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Chris Rebert

    Re: A question about funcation parameter and self defined object

    On Wed, Oct 8, 2008 at 4:36 PM, Wei Guo <weiguo6@gmail. comwrote:
    Hi,
    >
    I defined a class called vec3 which contains x, y, z and in another
    function, I tried to call a function which takes a vec3 as a parameter, but
    it seems that parameter is passed as a generic object and I can not access x
    , y, z in my vec3. Could anyone help me with that?
    Being dynamically typed, Python has no notion of variables having
    types, so the object isn't being "passed as a generic object", you're
    getting what really is a "generic object" value of type NoneType,
    which means the value of traV is indeed None, not vec3().
    >
    class vec3:
    def __init__(self, x_ = 0.0, y_ = 0.0, z_ = 0.0):
    self.x = x_
    self.y = y_
    self.z = z_
    class mat4:
    def translation( traV = vec3() ):
    tranM.rowLst[index][0] = traV.x
    AttributeError: 'NoneType' object has no attribute 'x'
    This code is perfectly fine. See below.
    >
    Could anyone help me how to turn the traV as type of vec3() instead of
    NoneType object?
    That's not what's happening. It's not like traV is being cast to
    NoneType thus making x inaccessible, as that's not even possible to
    express in Python.
    What's happening is something is calling translation() with None as an
    argument, and of course None (the value the caller provided for traV)
    has no attribute 'x', hence the error. So, check the full exception
    traceback and see who's calling translation() and how the argument
    being passed to it got to be None.

    Cheers,
    Chris
    --
    Follow the path of the Iguana...

Working...