Nie ma nic wspólnego między pytona eval
i sympy evalf
(ten ostatni jest do obliczania wartości liczbowej sympy drzew ekspresyjnych i ma nic do czynienia z parsowania, natomiast eval
jest o parsowania ciąg i oceniając je jako jeśli jest to kod).
Z drugiej strony jest tak samo niebezpieczny jak eval
, ponieważ w rzeczywistości używa on eval
.
Istnieją dwa podstawowe tryby, w których sympify
jest używane i prawdopodobnie jest to zły pomysł, ale oni mieszać w tej samej funkcji:
sympify(some_object)
zwróci reprezentację obiektu bardziej nadaje się do stosowania w CAS, jak przekształcenie int(1)
w sympy.Integer(1)
sympify("some_text")
by zanalizować tekst niemal bezpośrednio przez eval
(szukaj importu z sympy.parsing
Obecnie w sympify
i wykonaj go). Jest bezpieczniejsze, ponieważ istnieją pewne ograniczenia, ale jest to nie bezpieczne.
Nie ma sugestii, aby użyć 'evalf' zamiast' eval', ponieważ nie mają ze sobą nic wspólnego. Istnieją sugestie użycia 'sympify' zamiast' eval', ale (z punktu widzenia bezpieczeństwa) są one błędne, ponieważ są zasadniczo takie same. – Krastanov