我是靠谱客的博主 风趣野狼,最近开发中收集的这篇文章主要介绍python eval,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 eval()函数:

def eval(source, globals=None, locals=None): # real signature unknown; restored from __doc__
    """
    eval(source[, globals[, locals]]) -> value
    
    Evaluate the source in the context of globals and locals.
    The source may be a string representing a Python expression
    or a code object as returned by compile().
    The globals must be a dictionary and locals can be any mapping,
    defaulting to the current globals and locals.
    If only globals is given, locals defaults to it.
    """
    pass

描述
eval() 函数用来执行一个Python表达式的字符串或函数compile()返回的代码对象,并返回表达式的值。
参数
expression -- Python表达式的字符串或函数compile()返回的代码对象。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。
解析
表达式是可以被求值的代码,因为可被求值,所以它可写在赋值语句等号的右侧。
语句是一段可执行代码,不一定有值,所以像import、for和break等语句就不能被用于赋值。
Python表达式:表达式是相对语句而言的,表达式没有关键字,它们可以是使用数学运算符构成的算数表达式,也可以是使用括号调用的函数,它们可以接受用户输入,也可以不接受,有些有输出有些没有。以下是一些python常用的表达式操作符:

算术运算符:x+y, x-y, x / y, x*y, x // y, x%y
比较运算符:x>y, x<y, x>=y, x<=y, x==y, x!=y
逻辑运算符:x or y, x and y, not x
成员关系运算: x in y, x not in y
对象实例测试:x is y, x not is y
位运算:x & y, x | y, x ^ y, x<<y, x>>y
 一元运算: -x,+x,~x(按位取反)
幂运算:x ** y
索引、分片(对于序列):x[i], x[i,j], x[i,i,stride]
调用(对于可调用对象):x(...)
取属性: x.attribute
元组:(...)
序列:[...]
字典:{...}
三元选择表达式: expression if boolean_expression else expression2
匿名函数:lambda args:expression
生成器函数发送协议:yield x

python compile()函数
def compile(source, filename, mode, flags=None, dont_inherit=None): # real signature unknown; restored from __doc__
    """
    compile(source, filename, mode[, flags[, dont_inherit]]) -> code object
    
    Compile the source string (a Python module, statement or expression)
    into a code object that can be executed by the exec statement or eval().
    The filename will be used for run-time error messages.
    The mode must be 'exec' to compile a module, 'single' to compile a
    single (interactive) statement, or 'eval' to compile an expression.
    The flags argument, if present, controls which future statements influence
    the compilation of the code.
    The dont_inherit argument, if non-zero, stops the compilation inheriting
    the effects of any future statements in effect in the code calling
    compile; if absent or zero these statements do influence the compilation,
    in addition to any features explicitly specified.
    """
    pass

实例
以下展示了使用 eval() 方法的实例:
#对算数运算表达式字符串求值
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
#将列表字符串转化为列表
>>> a="[1,2,3,4,5,6]"
>>> print a ,type(a)
[1,2,3,4,5,6] <type 'str'>
>>> print eval(a) ,type(eval(a))
[1, 2, 3, 4, 5, 6] <type 'list'>
>>> print eval("'hello'>'yes'")
False
>>> print "'hello'>'yes'"
'hello'>'yes'

最后

以上就是风趣野狼为你收集整理的python eval的全部内容,希望文章能够帮你解决python eval所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部