如何打印Python类的所有属性?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)

我有一个动物类,它有几个属性,比如:

class Animal(object):
    def __init__(self):
        self.legs = 2
        self.name = 'Dog'
        self.color= 'Spotted'
        self.smell= 'Alot'
        self.age  = 10
        self.kids = 0
        #many more...

现在我想将所有这些属性打印到文本文件中。我现在的做法是:

animal=Animal()
output = 'legs:%d, name:%s, color:%s, smell:%s, age:%d, kids:%d' % (animal.legs, animal.name, animal.color, animal.smell, animal.age, animal.kids,)

有没有python的方法吗?

提问于
用户回答回答于

另一种方法是调用dir(),

a = Animal()
dir(a)   
>>>
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__',
 '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', 
 '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 
 '__weakref__', 'age', 'color', 'kids', 'legs', 'name', 'smell']

然后您可以访问属性,例如,使用双下划线进行过滤:

attributes = [attr for attr in dir(a) 
              if not attr.startswith('__')]

热门问答

腾讯云广州一区DNS变更,需要怎么操作?

思潮澎湃轻描淡写的生活,但思潮澎湃
推荐
我也收到相关的通知了,这里分享下~ 2019年1月31日,腾讯云将对广州地区旧的基础网络DNS服务器(10.225.30.181、10.225.30.223)进行下线。在此期间,腾讯云提供最新的DNS服务器供您更新使用。 我们建议您尽快将DNS服务器配置进行更新,并且我们为您提供...... 展开详请

人脸融合API Image 参数Base64数据有没有长度限制?

推荐

不支持,GET仅支持32KB以内的请求。但是您可以使用POST方法发送同样的请求,签名方式v1支持1MB的POST请求,签名方式v3支持10MB的POST请求

如何分析云测大师测试之后的结果参数?

Hyman Wang

腾讯云 · 高级产品经理 (已认证)

负责腾讯云游戏行业产品规划及发展。关注游戏行业生态,致力于腾讯内部游戏生态和技术能力开放,以及周边游戏生态资源整合。
推荐

请参考在线文档 : https://cloud.tencent.com/document/product/653/13636

Git上面如何将之前设置为public的项目修改为private?

SQL GM热爱数据库的小工匠
推荐
可以修改的,步骤如下: 1、进入项目主页,点击设置 image.png 2、点击高级设置、仓库设置、更改可见性级别 image.png 3、点击修改为私有即可 image.png ... 展开详请

上传的视屏会被压缩吗?

西风

renzha.net · 站长 (已认证)

www.renzha.net
推荐

会的,上传的视频会进行转码,所谓视频转码(Video Transcoding),是指将一个视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。

请问TCPlayer ios全屏播放,如何自动横屏全屏?

西风

renzha.net · 站长 (已认证)

www.renzha.net
推荐
通过 video 属性 “x5-video-orientation” 声明 TBS 播放器支持的方向,可选值:0(landscape 横屏),1:(portraint竖屏),2:(landscape | portrait 跟随手机自动旋转)。 (该属性为 TBS 内核实验性属性,...... 展开详请

所属标签

扫码关注云+社区