为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕勒3428872 2021-04-09 18:14:52
是否可以在代码内部直接将字符串的值用作类等?我不知道确切地描述我想用单词做什么,因此伪代码版本可能是理解问题所在的最佳方法。这是示例: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])
查看完整描述

2 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

您想使用getattr内置函数按名称从对象获取属性:


for node in itemdict.iterkeys():

    nodeinfo = itemdict.get(node)


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

        # Get the attribute named <the value of nodeinfo[1]> from nuke.nodes

        cls = getattr(nuke.nodes, nodeinfo[1])

        link = cls(hide_input=nodeinfo[3], label='to: ' + nodeinfo[2])

如果对象不具有传递给您的名称的属性getattr,AttributeError则将引发。您可以在代码中处理此错误getattr,也getattr可以将第三个参数传递给,该参数将返回而不是raise AttributeError。


查看完整回答
反对 回复 2021-04-20
  • 2 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信