Как получить журнал сбоя iPhone от клиентов?

Большинство программистов на Python согласны с тем, что передача функции будет естественным, безопасным и наиболее поддерживаемым подходом к этой проблеме:

In [ 2]: add_one = lambda a: a+1

In [ 3]: def my_func2(a, statement):
   ....:     print a
   ....:     a = statement(a)
   ....:     print a
   ....:     

In [ 4]: a
Out[ 4]: 9

In [ 5]: my_func2(a, add_one)
9
10

Но есть инструкция exec, которая обеспечивает неестественное, небезопасное и потенциально путающая альтернатива:

In [ 6]: def my_func(a, statement):
   ....:     print a
   ....:     exec(statement)
   ....:     print a
   ....:     

In [ 7]: a = 9

In [ 8]: my_func(a, 'a += 1')
9
10

Честно говоря, я не понимаю, почему вы это сделаете.

30
задан nhahtdh 15 May 2015 в 08:55
поделиться