首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么 PyRun_String 不评估 bool 文字?

在 Python 中,PyRun_String 函数用于执行一个字符串中的 Python 代码。它不会评估布尔值文字(例如 TrueFalse),因为这个函数的主要目的是执行代码,而不是评估表达式。

如果您需要评估布尔表达式,可以使用 ast.literal_eval() 函数。这个函数会安全地评估字符串中的 Python 表达式,并返回其值。例如:

代码语言:python
代码运行次数:0
复制
import ast

bool_literal = "True"
evaluated_value = ast.literal_eval(bool_literal)
print(evaluated_value)  # 输出:True

请注意,ast.literal_eval() 函数只能安全地评估包含字面值的表达式,例如整数、浮点数、字符串和布尔值。它不能用于执行任意代码或评估复杂的表达式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在C++中调用Python

虽然现在Python编程语言十分的火爆,但是实际上非要用一门语言去完成所有的任务,并不是说不可以,而是不合适。在一些特定的、对于性能要求比较高的场景,还是需要用到传统的C++来进行编程的。但是C++的一个缺点是比较难找到很好的轮子,这也是很多人专用Python的一个重要原因。这篇文章我们要介绍的是一个比较特殊的场景——用C++的代码去调用Python函数中实现的一些功能。这样的话,如果代码的主体还是用C++完成的,而部分功能为了简便,引入一些Python中已经封装好的函数,这样就可以很好的结合两种语言各自的特点。而另一种工作方式:通过Python来调用一些C++或者Fortran中实现的高性能函数,可以参考这一篇博客。这两种不同的使用方法各有优劣,但是如果以Python为主导,就很难避开GIL的问题,这里我们就不过多的展开。

03

扩展和嵌入python之重定向输出与编译

Ok,按照之前两篇嵌入和扩展python的文章来操作的话,现在已经可以定义自己的模块、在运行时获取异常信息。那么问题来了,在编写程序的过程中,难免有语法错误,如何在运行程序前检查这些错误呢?在编写大量python程序时,可以使用IDE辅助检查,也可以使用静态语法检查工具。如果我们自己做python编辑器,肯定要有语法检查的,总不能在运行时一直报语法错误,那会让人崩溃的。。。还有今天要分享的另一个话题,如何在嵌入的解释器中重新定向print()输出,这个在操作上也是比较简单。有了这两个骚操作,基础的功能就基本完成了。别高兴太早,之后还有更头疼的事情呢,比如,python解释器被嵌入到了一个线程里面,然后你要中断此时线程里面的操作。。。

03
领券