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