1 执行环境
1.1 可调用对象
任何能通过函数操作符“()”来调用的对象。
Python有4种可调用对象:函数,方法,类,实现了__call__()方法的类的实例。
1.2 代码对象
方法是对函数对象的封装,函数对象是对代码对象的包装。
函数对象的__code__属性:返回代码对象
1.3 内建函数
1.3.1 callable()
返回布尔值,确定一个对象是否可以通过函数操作符“()”来调用。
1.3.2 compile()
compile(source, filename, mode, flags=0,dont_inherit=False, optimize=-1):返回一个代码对象。
source:字符串源码
filename:当指定source时,该参数为空字符串“''”即可。
mode:指定编译代码的种类,可以指定为 'exec','eval','single'。当source是可执行语句组,mode应指定为'exec',返回的代码对象由exec 或exec()执行;当source中是一个可求值的表达式, mode应指定为'eval',返回的代码对象由eval()执行;当source是单一可执行语句mode应指定为'single',返回的代码对象由exec 或exec()执行。
1.3.3 eval()
对表达式求值,参数可以是字符串或者compile()返回的代码对象。
1.3.4 exec()
执行代码对象或字符串形式的python代码,也可以是打开.py文件的文件对象。
用相同文件对象对exec 进行调用时,处于EOF(文件末尾)位置,将无代码可执行。通过f.tell()和os.path.getsize()判断是否在文档末尾;用f.seek(0)回到文件开头。
1.3.5 execfile()
execfile(filename)等价于f =open(filename, 'r') exec f f.close()三句。
1.3.6 input()
list1=input('Enter a list: ') #输入的列表实际是一个字符串,但将自动执行该字符串的语句(如同eval()),即转化为list类型。