如何解决遍历实例的属性并在列表中遍历其值,并使用 .join(),奇怪的输出
这是一本书中的示例代码:
class Car():
def __init__(self,make,model,year):
self.make = make
self.model = model
self.year = year
def describe(self):
long = str(self.year) + ' ' + self.make + ' ' + self.model
return long.title()
mycar = Car('audi','a4',2016)
print(mycar.describe())
我在想是否可以让 describe()
做同样的事情,但要更有活力。并进行了更改:
class Car():
def __init__(self,year):
self.make = make
self.model = model
self.year = year
def describe(self):
l = str(''.join(str([getattr(self,a) for a in dir(self) if not a.startswith('__')])))
print(l)
mycar = Car('audi',2016)
mycar.describe()
我认为 describe()
的代码非常合理,但输出有点出乎意料..
以上代码输出:
─$ python3 carclassup.py
[<bound method Car.describe of <__main__.Car object at 0x7f0f5abaa8e0>>,'audi','14',2016]
-
为什么输出显示在列表中?我尝试
str()
但它仍然在列表中输出。 -
什么是
<bound method Car.describe of <__main__.Car object at 0x7f0f5abaa8e0>>
?我希望它不被输出。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。