для таких типов, как список, я могу легко создать пустой список, чтобы эта конструкция работала:
s = []
s+= [1,2,3] # result s assigned [1,2,3]
очевидно полезно в таких конструкциях:
s=[]
for v in (list1,list2,list3..):
if condition : s+=v
Теперь я работаю с пользовательским типом, определенным в модуле, который я не могу прочитать или изменить .. Я должен сделать следующее:
s=0
for v in (typefoo1,typefoo2,..):
if condition :
if s==0 :
s=v
else:
s+=v
Это работает, но некрасиво и происходит так часто, что это довольно раздражает. итак .. есть ли способ создать пустой объект, чтобы оператор +=
вел себя просто как обычное присвоение=
независимо от типа в r.h.s?
Изменить: я пытался намеренно оставить вопрос общим, но для полноты рассматриваемый тип представляет собой последовательность геометрии Abaqus.
iter
тип, определенный пользователем, илиv
? - person Kevin   schedule 11.06.2015s
значением0
илиNone
и т. Д. Приводит к ошибке «Ошибка неподдерживаемого типа операнда при + =». - person agentp   schedule 11.06.2015iter
- это итерация объектов, отличных от обычных чисел, которые поддерживают сложение между собой? - person tobias_k   schedule 11.06.2015sum
не работает с этим типом, хотя один обходной путь - написать свою собственнуюsum
функцию, специфичную для этого типа (которая несколько более элегантна, чем приведенная выше) - person agentp   schedule 11.06.2015