Вы можете подделать его с помощью
>>> o = O(2**n, (n, oo))
>>> Function("O")(*map(simplify,o.args))
O(2**n, (n, oo))
Но если вы хотите иметь возможность печатать его таким образом, похоже, вам нужно будет создать собственный принтер, чтобы его можно было печатать таким образом.Если вы делаете o.func(*map(...))
- даже с evaluate=False
- он возвращается к форме exp
, так что это кажется жестко закодированным в способ, которым O
хочет показать вещи.Возможно, стоит поднять вопрос о том, следует ли добавлять / выполнять ключевое слово evaluate
с помощью O.