📅  最后修改于: 2023-12-03 15:15:52.889000             🧑  作者: Mango
IPython是Python的一个交互式 shell 和文本界面,它是CPython的增强版本,增加了许多非常实用的功能,其中之一就是动态对象自省。
动态对象自省是指在代码中利用IPython内置的一些功能,能够查看对象中包含的所有属性和方法,并能够进行相关操作。
IPython提供了非常丰富的自省功能,比如?
关键字可以用来查询对象、模块或者函数的文档;??
用于查询源代码;dir()
函数可以查看对象中包含的所有属性和方法;type()
函数可以查看对象类型等等。
IPython还提供了各种内置方法来帮助程序员进行更高效的自省操作。以下是一些常用的内置方法:
obj?
和 obj??
这两个方法都可以用于查询对象、模块或者函数的文档说明。obj?
用于简要查询文档说明,obj??
则用于查看源代码。
func?
func??
%pdoc
和 %pdef
%pdoc
用于查询对象的文档说明,%pdef
查询函数或者对象的参数列表。
%pdef func
%pdoc obj
%who
和 %whos
%who
和%whos
可以查询当前作用域中定义的变量和它们的类型。%whos
返回的信息更加详细。
a=1
b='hello'
%who
%whos
dir()
dir()
可以查看对象中包含的所有属性和方法。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person('Tom', 18)
dir(p)
type()
type()
可以查看对象类型。
class Animal:
pass
a = Animal()
type(a)
IPython提供了很多丰富的自省功能,可以帮助程序员更加高效地进行开发。当然,这只是IPython的一部分功能,IPython还有很多其他的特性,在开发中可以寻找合适的方式来提高开发效率。