天天看点

python 获取对象信息dir()

#!/bin/env python
#-*- coding: utf8 -*-
print "获取一个对象的所有属性与方法用dir():"
print dir('ABC')
print "字符串长度:"
print len('ABCDE')
print "字符串小写:"
print "ABC".lower()

#自定义字符长度
# class MyObject(object):
#     def __len__(self):
#         return 10
# obj = MyObject();
# print len(obj)

class MyObject(object):
    def __init__(self):
        self.x = 9
    def power(self):
        return self.x * self.x

obj = MyObject()
print "#######操作队形:getattr(),setattr(),hasattr()#######"
print "有属性x吗?:",hasattr(obj,'x')
print "打印x值:",obj.x
print "有属性y吗?:",hasattr(obj,'y')
print "没有属性y,添加y属性如下:"
setattr(obj,'y',32)
print "添加y属性成功,打印y值:",obj.y
print "用getattr函数获取y值:",getattr(obj,'y')
print "获取不存在的属性,抛出AttributeError错误:"
# print getattr(obj,'98k')
print '针对不存在的属性,添加默认值并返回该值:',getattr(obj,'98k',500)

print "################也可以获取对象的方法##################"
print "是否有power属性?",hasattr(obj,'power')
print "获取power属性:",getattr(obj,'power')
print "获取power属性赋值变量如下:"
fn=getattr(obj,'power')
print "调用fn()与power()是一样的:",fn()

print "正确的用法例子:"
def readImage(fp):
    if hasattr(fp,'read'):
        return readData(fp)
    return None
           

打印结果如下:

python 获取对象信息dir()

资料参考:https://www.liaoxuefeng.com/