我开始使用Python编写各种项目的代码(包括Django web开发和Panda3D游戏开发)。
为了帮助我理解发生了什么,我想基本上“看看”Python对象内部,看看它们是如何运行的——比如它们的方法和属性。
假设我有一个Python对象,我需要什么来打印它的内容?这可能吗?
我开始使用Python编写各种项目的代码(包括Django web开发和Panda3D游戏开发)。
为了帮助我理解发生了什么,我想基本上“看看”Python对象内部,看看它们是如何运行的——比如它们的方法和属性。
假设我有一个Python对象,我需要什么来打印它的内容?这可能吗?
当前回答
如果您想查看参数和方法,就像其他人指出的那样,可以使用pprint或dir()
如果您想查看内容的实际值,可以这样做
object.__dict__
其他回答
Python有一组强大的自省特性。
看看下面的内置函数:
(型) dir () (id) getattr () hasattr () globals () locals () callable ()
Type()和dir()分别对于检查对象的类型及其属性集特别有用。
我很惊讶居然没人提到帮助!
In [1]: def foo():
...: "foo!"
...:
In [2]: help(foo)
Help on function foo in module __main__:
foo()
foo!
Help让您阅读文档字符串并了解类可能具有的属性,这非常有用。
在Python 3.8中,你可以使用__dict__. __dict__来打印对象的内容。例如,
class Person():
pass
person = Person()
## set attributes
person.first = 'Oyinda'
person.last = 'David'
## to see the content of the object
print(person.__dict__)
{"first": "Oyinda", "last": "David"}
此外,如果您想查看列表和字典内部,可以使用pprint()
Vars (obj)返回对象的属性。