Python有三种不同类型函数对象,第一种是内建函数:
内建函数是用C/C++写的,编译后放到Python解释器中
2.用户定义的函数:
3.lambda表达式:
同为函数,但不需要def语句创建,而是lambda关键字:
需要通过函数式编程接口,或者把引用赋值给一个变量
方法:
内建方法:只有内建类型才有內建方法
类:
python给类提供了一个__call__()的特别方法,没有__call__()方法是不能调用实例的
代码对象:
一个python模块的代码对象,是构成该模块的全部代码。
exec用来执行代码对象,compile用来生成代码对象
callable()确定一个对象是否可以通过函数操作符()来调用
compile()三个参数必须有,第一个代表要编译的Python代码,第二个字符串(但经常被置为空串),最后一个参数是个字符串,用来表明
代码对象的类型:
eval():
eval(expression,globals=None,locals=None)
参数
expression
是一个表达式字符串,或者表示编译出来代码对象的名称;参数
globals
是全局命名空间,可以指定执行表达式时的全局作用域的范围,比如指定某些模块可以使用。如果本参数缺省,就使用当前调用这个函数的当前全局命名空间;参数
locals
是局部作用域命名空间,是用来指定执行表达式时访问的局部命名空间。
exec:
exec obj
被执行的对象可以只是原始的字符串,比如单一语句或语句组
内建函数input()等价于eval(raw_input()),但
raw_input()总是以字符串的形式返回,而input()返回的是一个Python对象
导入:第一次导入模块会执行模块最高级代码
跟着一个if语句,检测__name__来确定是否要调用脚本
execfile():
python执行其他程序:
os.system();
os.popen():是文件对象和system()函数的结合,可以建立一个指向程序的单向连接
os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出
结束执行:
sys.exit()立即退出程序(System Exit是唯一不看作错误的异常)