是否可以在代碼內(nèi)部直接將字符串的值用作類等?我不知道確切地描述我想用單詞做什么,因此偽代碼版本可能是理解問題所在的最佳方法。這是示例: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貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個贊
您想使用getattr內(nèi)置函數(shù)按名稱從對象獲取屬性:
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則將引發(fā)。您可以在代碼中處理此錯誤getattr,也getattr可以將第三個參數(shù)傳遞給,該參數(shù)將返回而不是raise AttributeError。
添加回答
舉報(bào)
0/150
提交
取消