標籤:

【Houdini16研發】Houdini到底有多少個節點?

這是個有趣的話題

這是最新版本Houdini 16.0.705所有的節點數,2666個,如果花一年時間學習完Houdini的節點話的,平均每天7.3個!

統計的Python代碼很簡單,選擇菜單Windows>Python Source Editor

import hounums = []for each in dir(hou): if "NodeType" in each: try: name = eval("hou.%s().name()" % each) num = eval("len(hou.%s().nodeTypes())" % each) nums.append(num) except: continue print("[Node %-8s, %-3d]" % (name, num))print("The total numbers of nodes in Houdini is %d!" % sum(nums))

有兩點需要說明的,首先nodeTypes是hou模塊提供的類方法返回某一類節點所擁有的所有節點的方法。

hou.sopNodeTypeCategory().nodeTypes()返回的是下圖中所有對應節點

第二點是exec()和eval()函數的用法,語法

eval(expression, globals=None, locals=None)exec(object[, globals[, locals]])

eval函數用於計算指定表達式的值。也就是說它要執行的Python代碼只能是單個運算表達式(注意eval不支持任意形式的賦值操作),而不能是複雜的代碼邏輯,這一點和lambda表達式比較相似。

exec用於動態執行Python代碼。也就是說exec可以執行複雜的Python代碼,而不像eval函數那麼樣只能計算一個表達式的值。

建議非萬不得已,不要輕易使用這兩個函數來執行Python代碼。

推薦閱讀:

TAG:Python | VFX |