Learn about string formatting in Python. String formatting is also known as String interpolation. It is the process of inserting a custom string or variable in predefined text. As a data scientist, you would use it for inserting a title in a graph, show a message or an error, or pass a statement to a function.
Attributes of a class can also be accessed using the following built-in methods and functions : getattr() – This function is used to access the attribute of object. hasattr() – This function is used to check if an attribute exist or not. setattr() – This function is used to set an attribute.
Use time. strptime to parse from string to time struct. If the string doesn't match the format it raises ValueError . Show activity on this post.
To use formatted string literals, begin a string with f or F before the opening quotation mark or triple quotation mark. The str.format()method of strings help a user to get a fancier Output. User can do all the string handling by using string slicing and concatenation operations to create any layout that user wants.
You can use the .attribute_name
notation inside the format fields themselves:
print 'My object has strings a={0.a}, b={0.b}, c={0.c}'.format(obj)
Below is a demonstration:
>>> class Test(object):
... def __init__(self, a, b, c):
... self.a = a
... self.b = b
... self.c = c
...
>>> obj = Test(1, 2, 3)
>>> 'My object has strings a={0.a}, b={0.b}, c={0.c}'.format(obj)
'My object has strings a=1, b=2, c=3'
>>>
Note however that you do need to number the format fields when doing this. Also, as you can see, the str.format
function has its format fields denoted by curly braces {...}
, not the %
sign.
For more information, here is a reference on the Format String Syntax in Python.
I think it's preferable to use vars() to access an object's attributes as a dict
rather than usng __dict__
.
So you could do this:
"My object has strings a={a}, b={b}, c={c}".format(**vars(obj))
For more background on why vars()
is preferable to __dict__
, see the answer to the question Use dict or vars()?.
As @igniteflow wrote in a buried comment:
'My object has strings a={a}, b={b}, c={c}'.format(**obj.__dict__)
With my limited python understanding: .__dict__
is a dict with all the instances attributes and the **
operator basically unpacks them and adds them as key=value args to the method
For the sake of completeness, building on @igniteflow and @Christian, you could use the %
string format operator and write:
'My object has strings a=%(a)s, b=%(b)s, c=%(c)s' % obj.__dict__
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With