【笔记】Python输出对象的所有属性

本文详细介绍了Python中获取对象属性的方法,包括使用内置函数`getattr`和`callable`。通过实例解析了如何查看和检查对象的属性值,以及判断对象是否可调用。
部署运行你感兴趣的模型镜像

Python输出对象的属性

一、getattr()函数

python 内置函数, getattr() 函数用于返回一个对象属性值。

描述

getattr() 函数用于返回一个对象属性值。

语法

getattr 语法:

getattr(object, name[, default])
参数
  • object – 对象。
  • name – 字符串,对象属性。
  • default – 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。
返回值

返回对象属性值。

实例

以下实例展示了 getattr 的使用方法:

class A(object):
    bar = 1     
a = A()
getattr(a, 'bar')        
>>>1
# 获取属性 bar 值 1 
getattr(a, 'bar2')       
# 属性 bar2 不存在,触发异常 
>>>Traceback (most recent call last):  File "<stdin>", line 1, in <module> AttributeError: 'A' object has no attribute 'bar2' 
getattr(a, 'bar2', 3)    # 属性 bar2 不存在,但设置了默认值 3 
>>>3

二、callable()函数

描述

callable() 函数用于检查一个对象是否是可调用的。

对于函数、方法、lambda 函式、 类以及实现了 call 方法的类实例, 它都返回 True。

语法

callable()方法语法:

callable(object)
参数
  • object – 对象
返回值

可调用返回 True,否则返回 False。

实例

以下实例展示了 callable() 的使用方法:

>>>callable(0)
False
>>> callable("runoob")
False
 
>>> def add(a, b):
...     return a + b
... 
>>> callable(add)             # 函数返回 True
True
>>> class A:                  # 类
...     def method(self):
...             return 0
... 
>>> callable(A)               # 类返回 True
True
>>> a = A()
>>> callable(a)               # 没有实现 __call__, 返回 False
False
>>> class B:
...     def __call__(self):
...             return 0
... 
>>> callable(B)
True
>>> b = B()
>>> callable(b)               # 实现 __call__, 返回 True
True

三、总结

那么我现在想要 输出对象的所有属性

使用 getattr()callable() 来实现访问类对象的成员; dir()可以列出对象的所有成员名

class A():
    def __init__(self):
        self.name = 'pp'
        self.age = 12
        self.len = 18.4
        self.height = 24

a = A ()
for i_name in dir(a):
    if not callable(a) and not i_name.startswith('__'):
        print(i_name, getattr(a, i_name))
>>> 输出
age 12
height 24
len 18.4
name pp

🐷

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值