Is there a built-in function to print all the current properties and values of an object?
You are really mixing together two different things.
Use dir()
, vars()
or the inspect
module to get what you are interested in (I use __builtins__
as an example; you can use any object instead).
>>> l = dir(__builtins__)
>>> d = __builtins__.__dict__
Print that dictionary however fancy you like:
>>> print l
['ArithmeticError', 'AssertionError', 'AttributeError',...
or
>>> from pprint import pprint
>>> pprint(l)
['ArithmeticError',
'AssertionError',
'AttributeError',
'BaseException',
'DeprecationWarning',
...
>>> pprint(d, indent=2)
{ 'ArithmeticError': <type 'exceptions.ArithmeticError'>,
'AssertionError': <type 'exceptions.AssertionError'>,
'AttributeError': <type 'exceptions.AttributeError'>,
...
'_': [ 'ArithmeticError',
'AssertionError',
'AttributeError',
'BaseException',
'DeprecationWarning',
...
Pretty printing is also available in the interactive debugger as a command:
(Pdb) pp vars()
{'__builtins__': {'ArithmeticError': <type 'exceptions.ArithmeticError'>,
'AssertionError': <type 'exceptions.AssertionError'>,
'AttributeError': <type 'exceptions.AttributeError'>,
'BaseException': <type 'exceptions.BaseException'>,
'BufferError': <type 'exceptions.BufferError'>,
...
'zip': <built-in function zip>},
'__file__': 'pass.py',
'__name__': '__main__'}
Print all properties of a Python Class
In this simple case you can use vars()
:
an = Animal()
attrs = vars(an)
# {'kids': 0, 'name': 'Dog', 'color': 'Spotted', 'age': 10, 'legs': 2, 'smell': 'Alot'}
# now dump this in some way or another
print(', '.join("%s: %s" % item for item in attrs.items()))
If you want to store Python objects on the disk you should look at shelve — Python object persistence.
use the print () function on an Object to display an attribute
You need to define a __str__
function for the class like so:
class Product:
def __init__(self, name = ""):
self._name = name
@property
def name(self):
return self._name
def __str__(self):
return " Product(name = " + self._name + ")"
How To Print All Values In An Object If A Certain Name/Value pair exists?
Iterate with a for
, and filter with an if
for_csv = []
for obj in jsonResults:
if obj['oranges'] == '555555':
for_csv.append(obj)
for k, v in obj.items():
print(f"{k}={v}")
For the CSV output, you'll need to handle multilevel dict at actor_location
Python how to print all object properties in one line
you can use builtin method dir(obj)
The default dir()
mechanism behaves differently with different types of objects, as it attempts to produce the most relevant, rather than complete, information:
If the object is a module object, the list contains the names of the module’s attributes.
If the object is a type or class object, the list contains the names of its attributes, and recursively of the attributes of its bases.
Otherwise, the list contains the object’s attributes’ names, the names of its class’s attributes, and recursively of the attributes of its class’s base classes.
source : https://docs.python.org/2/library/functions.html#dir
Related Topics
How to Open (Read-Write) or Create a File with Truncation Allowed
How to Print the Full Numpy Array, Without Truncation
Sorting a Python List by Two Fields
Beyond Top Level Package Error in Relative Import
Capturing Repeating Subpatterns in Python Regex
Import Error: No Module Name Urllib2
Imploding a List for Use in a Python MySQLdb in Clause
Typeerror: 'Int' Object Is Not Callable
Freezing/Hanging Tkinter Gui in Waiting for the Thread to Complete
Unicodedecodeerror, Invalid Continuation Byte
How to Convert Number Words to Integers
How to Run Multiple Python Versions on Windows
After Conda Update, Python Kernel Crashes When Matplotlib Is Used
How to Get List of Values from Dict
Find the Column Name Which Has the Maximum Value for Each Row