Python类实例问题(init接受五个参数;只传递两个)
我一直在编写IK/FK关节匹配脚本,上个月我终于能够正常工作。今天我启动Maya,运行脚本,当界面加载时,我收到以下错误 在运行加载脚本时执行以下操作:Python类实例问题(init接受五个参数;只传递两个),python,arguments,instance,maya,Python,Arguments,Instance,Maya,我一直在编写IK/FK关节匹配脚本,上个月我终于能够正常工作。今天我启动Maya,运行脚本,当界面加载时,我收到以下错误 在运行加载脚本时执行以下操作: # Error: NameError: file <maya console> line 196: global name 'Fks' is not defined # 我被告知,如果在实例化类时将变量传递到该类中,只要传递所需的参数,它就会正常运行,但是在发生更改时 def __init__(self, name, *args)
# Error: NameError: file <maya console> line 196: global name 'Fks' is not defined #
我被告知,如果在实例化类时将变量传递到该类中,只要传递所需的参数,它就会正常运行,但是在发生更改时
def __init__(self, name, *args):
到
在maya中加载脚本时,我收到以下消息
# Error: TypeError: file <maya console> line 413: __init__() takes at least 5 arguments (2 given) #
有人能帮我理解什么是快乐吗?因为我以为我在传递所有参数简而言之,调用
Create\u Selection\u Chains(…)
现在还需要三个参数。为什么?
需要几个位置参数,即\uuuu init\uuuu(self、name、Fks、Ikw、ikpv)
name、Fks、Ikw、ikpv
需要一个(\uuuu init(self、name、*args):
)和0到多个(name
)李>*args
创建选择链(“左臂”、“foo”、“bar”、“baz”)
给定的
class Create_Selection_Chains(object):
def __init__(self, name, *args):
self.Fks = Fks
self.Ikw = Ikw
self.Pv = ikpv
self.name = name
...
正如您可能已经发现的那样,初始化(self,name,*args)
不起作用,因为args
没有映射到任何东西,Fks
,Ikw
和ikpv
没有定义。这将抛出一个错误
代码
将以下内容视为众多选项之一:
class Create_Selection_Chains:
def __init__(self, name, fks, ikw, ikpv):
self.name = name
self.fks = fks
self.ikw = ikw
self.pv = ikpv
...
最后,在实例化时传入更多值,例如:
left_arm_select = Create_Selection_Chains("left arm", "foo", "bar", "baz")
*args是可变的,您的更改不是可变的。 这里必须给出在init函数中定义的每个参数。
您可以将其更改为Fks=some value、IKw=some value等,使其成为可选参数。I这确实会删除我的错误,但现在我似乎无法获取返回值来替换foo、bar、baz值。我不理解您的评论。您必须详细说明“我的返回值替换foo、bar、baz值”。
left_arm_select = Create_Selection_Chains("left arm")
class Create_Selection_Chains(object):
def __init__(self, name, *args):
self.Fks = Fks
self.Ikw = Ikw
self.Pv = ikpv
self.name = name
...
class Create_Selection_Chains:
def __init__(self, name, fks, ikw, ikpv):
self.name = name
self.fks = fks
self.ikw = ikw
self.pv = ikpv
...
left_arm_select = Create_Selection_Chains("left arm", "foo", "bar", "baz")