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}"
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}"
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().