Python使用字符串值作为类/部分代码

是否可以在代码内部直接将字符串的值用作类等?我不知道确切地描述我想用单词做什么,因此伪代码版本可能是理解问题所在的最佳方法。这是示例:


for node in itemdict.iterkeys():

    nodeinfo = itemdict.get(node)


    if nodeinfo[4] == "node": #create new Links based on original nodeclass

        #Example if nodeinfo[1] == "Dot"

        #link = nuke.nodes.Dot(hide_input=nodeinfo[3], label='to: ' + nodeinfo[2])

        link = nuke.nodes.XXX_value of nodeinfo[1] here_XX(hide_input=nodeinfo[3], label='to: ' + nodeinfo[2])


慕勒3428872
浏览 169回答 2
2回答

幕布斯7119047

您想使用getattr内置函数按名称从对象获取属性:for node in itemdict.iterkeys():&nbsp; &nbsp; nodeinfo = itemdict.get(node)&nbsp; &nbsp; if nodeinfo[4] == "node": #create new Links based on original nodeclass&nbsp; &nbsp; &nbsp; &nbsp; # Get the attribute named <the value of nodeinfo[1]> from nuke.nodes&nbsp; &nbsp; &nbsp; &nbsp; cls = getattr(nuke.nodes, nodeinfo[1])&nbsp; &nbsp; &nbsp; &nbsp; link = cls(hide_input=nodeinfo[3], label='to: ' + nodeinfo[2])如果对象不具有传递给您的名称的属性getattr,AttributeError则将引发。您可以在代码中处理此错误getattr,也getattr可以将第三个参数传递给,该参数将返回而不是raise AttributeError。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python