原文地址:Class naming conventions in Blender 2.8 Python API
在Blender 2.8 API中,对类以及其标识符的命名要求变得更为严格。类名必须遵守如下约定
UPPER_CASE_{SEPARATOR}_mixed_case
译者注 正则表达式为:[A-Z][A-Z0-9_]*{ABBREV}[A-Za-z0-9_]+ Abbrev: HT – Header MT – Menu OT – Operator PT – Panel UL – UI list
其中{SEPARATOR}部分是两个标志其所属类型(即它们是从哪个类派生而来)的字母:
HT – Header
MT – Menu
OT – Operator
PT – Panel
UL – UI list
类标识符“bl_idname”必须和其类名相符。
比如,以下为有效的类名和标识符:
class MYADDON_OT_my_operator(bpy.types.Operator):
bl_idname = 'myaddon.my_operator'
...
class MYADDON_MT_my_menu(bpy.types.Menu):
bl_idname = 'MYADDON_MT_my_menu'
...
class MYADDON_HT_my_header(bpy.types.Header):
bl_idname = 'MYADDON_HT_my_header'
...
class MYADDON_PT_my_panel(bpy.types.Panel):
bl_idname = 'MYADDON_PT_my_panel'
...
如果类名和标识符不满足此约定,Blender将会报错:
‘Oscurart Files Tools’ doesn’t contain ‘_PT_’ with prefix & suffix