我想知道在python中创建一个类时,例如,类Car, 如果属性是汽车的品牌和年份,可以返回名称和品牌, 没有使用除
之外的任何东西>>> c = Car('Toyota Camry', 2007)
>>> c
而不是返回<car object at 0x0000000003394FD0>
无论如何只返回
元组('Toyota Camry', 2007)
没有在汽车类中实现__str__
方法?
答案 0 :(得分:3)
您实施__repr__
method;它是表示对象时使用的方法:
class Car:
def __init__(self, make, year):
self.make = make
self.year = year
def __repr__(self):
return 'Car({!r}, {!r})'.format(self.make, self.year)
这会产生一个看起来就像原始类调用的表示字符串:
>>> class Car:
... def __init__(self, make, year):
... self.make = make
... self.year = year
... def __repr__(self):
... return 'Car({!r}, {!r})'.format(self.make, self.year)
...
>>> Car('Toyota Camry', 2007)
Car('Toyota Camry', 2007)
答案 1 :(得分:0)
使用__repr__
代替__str__
。
__repr__
表示对象,而__str__
仅使用print()
进行调用。
为此,请使用以下内容:
class Car:
def __init__(self, model, year):
self.model = model
self.year = year
def __repr__(self):
return str((self.model, self.year))
这将运行:
>>> camry = Car('Toyota Camry', 2006)
>>> camry
('Toyota Camry', 2006)
>>>