I have found the following code in a project.
What does the !r
part mean?
def __repr__(self):
return f"user={self.user!r}, variant={self.variant!r}"
In Python strings, the backslash "\" is a special character, also called the "escape" character. It is used in representing certain whitespace characters: "\t" is a tab, "\n" is a newline, and "\r" is a carriage return.
A carriage return is nothing but a simple escape character. \n is also an escape character which creates a new line. Carriage return or \r is a very unique feature of Python. \r will just work as you have shifted your cursor to the beginning of the string or line.
The 'r' at the start of the pattern string designates a python "raw" string which passes through backslashes without change which is very handy for regular expressions (Java needs this feature badly!). I recommend that you always write pattern strings with the 'r' just as a habit.
r (apply repr() ) can be used to convert the value before it is formatted. >>> import math >>> print 'The value of PI is approximately {}. '. format(math.
By default an f-string displays the result of calling str on the values inside the curly braces. Specifying !r
displays the result of calling repr instead.
From the docs
The conversion field causes a type coercion before formatting. Normally, the job of formatting a value is done by the format() method of the value itself. However, in some cases it is desirable to force a type to be formatted as a string, overriding its own definition of formatting. By converting the value to a string before calling format(), the normal formatting logic is bypassed.
Three conversion flags are currently supported: '!s' which calls str() on the value, '!r' which calls repr() and '!a' which calls ascii().
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