我一直主要使用 PHP 进行编程,我正在尝试切换到 Python。我精通 PHP,而且我从来不需要使用内省(introspection)/内省(introspection)之类的功能。代码自省(introspection)有什么好处,在什么情况下我会发现它不可或缺?
这是我认为有用的唯一方法: 从我在“深入 Python”中看到的示例来看,内省(introspection)基本上意味着您可以列出一个对象的所有函数和属性。对我来说,内省(introspection)似乎只是作为对象的“用户手册”。它使您可以从 python shell 查看对象及其功能。
我只是不明白为什么或在什么情况下你会拿一个任意的对象,反省它,然后做一些有用的事情。
最佳答案
假设给你一个自定义对象,你想知道该对象是否具有某些属性或是否具有某种方法,那么可以使用内省(introspection)函数(如hasattr
)来找出答案。
也像 DiveintoPython 书中已经说明的那样,假设你正在构建一个具有自动完成功能的 GUI 编辑器,你想获得在运行时可调用的对象的公共(public)方法,那么你可以使用内省(introspection)方法对于通过 dir
获取的每个方法,如 getattr
并检查它是否 callable
然后将其显示在您的自动完成列表中。
关于python - 内省(introspection)有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5061325/