本篇文章主要介绍了" Python学习笔记14:Python执行环境",主要涉及到方面的内容,对于其他编程jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
1、可调用对象
许多Python对象都是可调用的,即任何能通过函数操作符“()”来调用的对象。Python有4种可调用对象:函数、方法、类以及一些类实例,这些对...
1、可调用对象
许多Python对象都是可调用的,即任何能通过函数操作符“()”来调用的对象。Python有4种可调用对象:函数、方法、类以及一些类实例,这些对象的任何引用或者别名都是可调用的。
(1)函数(3种函数)
①内建函数(BIF,built-in function)
由C/C++写的,编译过后放入Python解释器,然后把它们作为第一(内建)名称空间的一部分加载进系统。这些函数在_builtin_模块里,并作为_builtins_模块导入到解释器中。
内建函数的属性包括:
- bif.__doc__ 文档字符串(或None)
- bif.__name__ 字符串类型的函数名字
- bif.__self__ 设置为None(保留给内建方法)
- bif.__module__ 存放bif定义的模块名字(或None)
②用户定义的函数(UDF,user-defined function)
用Python书写,定义在模块的最高级,作为全局名称空间的一部分装载进系统。函数也可以在其他的函数体内定义。
UDF也有许多属性,最常见的属性有:
- udf.__doc__ 文档字符串(也可以用udf.func_doc)
- udf.__name__ 字符串类型的函数名字(也可以用udf.func_name)
- udf.func_code 字节编译的代码对象
- udf.func_defaults 默认的参数元组
- udf.func_globals 全局名称空间字典,和从函数体内部调用globals(x)一样
- udf.func_dict 函数属性的名称空间
- udf.func_doc 见udf.__doc__
- udf.func_name 见udf.__name__
- udf.func_closure 包含了自由变量的引用的单元对象元组
③lambda表达式
用lambda关键字创建,不使用def语句创建。
用lambda关键字创建的函数对象没有命名,需要将其引用赋值给一个变量才可以被调用。
用lambda关键字创建的函数对象和用户自定义函数具有相同的属性。
(2)方法
①内建方法(BIM)
只有内建类型(BIT)才有内建方法。BIM和BIF调用type()具有相同的结果builtin_function_or_method。BIM和BIF两者都具有相同属性。不同之处在于BIM的__self__属性指向一个Python对象,而BIF指向None。
对于类和实例都可以以该对象为参数调用内建函数dir()来获得它们的数据和方法属性。
②用户定义的方法(UDM)
包含在类定义之中,仅有定义它们的类可以使用。
UDM与类对象是关联的(非绑定方法),但是只能通过类的实例来调用(绑定方法)。
无论UDM是否绑定,所有的UDM都是相同的类型–“实例方法”。
UDM包含的常用属性有:
- udm.__doc__ 文档字符串(与udm.im_func.__doc__相同)
- udm.__name__ 字符串类型的方法名字(与udm.im_func.__name__相同)
- udm.__module__ 定义udm的模块的名字(或None)
- udm.im_class 方法相关联的类(对于绑定的方法;如果是非绑定,那么为要求udm的类)
- udm.im_func 方法的函数对象
- udm.im_self 如果绑定的话为相关联的实例,如果非绑定为None
(3)类
“调用”类的结果便是创建了类实例。程序员可以通过实现__init__()方法来自定义实例化过程。调用类时,传入的参数都会交给__init__()方法。
(4)类的实例
Python给类提供了特殊方法__call__(),允许程序员创建可调用的对象(实例)。
默认情况下,该方法没有实现,所以大多数实例是不可调用的。在类定义中覆盖该方法,类的实例就成为可调用对象了。