Если нужно одновременно иметь доступ и к текущему контексту, например для работы с операторами, и к данным сцены, например для работы с мешами, мы обращаемся к двум предопределенным в Blender Python API структурам: “bpy.context” и “bpy.data”.
Например мы можем передать указатели на эти две структуры в функцию:
1 2 3 4 5 6 7 8 9 10 11 |
import bpy def my_func(context, scene_data): print(context, scene_data) my_func( context=bpy.context, scene_data=bpy.data ) # <bpy_struct, Context at 0x00000000050EF568> <bpy_struct, BlendData at 0x0000000007FA6408> |
Однако в структуре контекста “bpy.context” уже есть ссылка с именем “blend_data”, которая указывает на данные сцены. С помощью этого указателя можно обращаться к данным сцены, не передавая его отдельно в явном виде.
1 2 3 4 5 6 7 8 9 10 |
import bpy def my_func(context): print(context, context.blend_data) my_func( context=bpy.context, ) # <bpy_struct, Context at 0x00000000050EF568> <bpy_struct, BlendData at 0x0000000007FA6408> |