в Perl все делают
use warnings;
, мне нравится
use warnings FATAL => 'all';
, Это заставляет код умирать за любое предупреждение компилятора/времени выполнения. Это главным образом полезно в ловле неинициализированных строк.
use warnings FATAL => 'all';
...
my $string = getStringVal(); # something bad happens; returns 'undef'
print $string . "\n"; # code dies here
Вы можете использовать объект .__ str __ ()
:
class A:
def __str__(self):
return "Something useless"
class B(A):
def __str__(self):
return object.__str__(self)
Это дает вам вывод по умолчанию для экземпляров B
:
>>> b = B()
>>> str(b)
'<__main__.B instance at 0x7fb34c4f09e0>'
"функция по умолчанию, которую python использует, если нет метода __ str __
" - это repr
, поэтому:
class B(A) :
def __str__(self) :
return repr(self)
Это имеет место, если __repr __
был переопределен в цепочке наследования или нет. IOW, если вам ТАКЖЕ нужно обойти возможные переопределения __ repr __
(в отличие от их использования, если они существуют, как при этом подходе), вам потребуются явные вызовы объекта .__ repr __ (self)
(или объект .__ str __
, как предполагал другой ответ - то же самое).