Метод
poll используется для проверки возможности вызова оператора в контексте, без проверки данных. Более того
- Код: Выделить всё
@classmethod
def poll(self, context):
print(self.v2)
if self.v2 == 0:
return False
return True
Первый аргумент правильней будет именовать не
self, а
cls, так как классовые методы принимают в качестве первого аргумента не экземпляр класса, а сам класс.
К тому же, надо учесть, что питон используется для взаимодействия с Си инструментами редактора куда сложнее и запутаннее, чем это делается, допустим, в BGE. Потому справедливо произвести проверку:
- Код: Выделить всё
@classmethod
def poll(cls, context):
print(type(cls))
return True
Результат
- Код: Выделить всё
>>> bpy.ops.math.division(v1 = 100, v2 = 2)
<class 'bpy_types.OrderedMeta'>
То есть, мы получаем первым аргументом даже не наш класс
div.
Проще говоря, обработку и проверку данных нужно производить в методе
executeKorchy писал(а):poll не для этого и нужно просто возвращать {'CANCELLED'} из execute