请稍候,加载中....

对象相关函数

对象相关的函数可以方便我们一些对对象属性的操作,包含

len函数

查看对象长度

lists = [1,2,3]
print(len(lists))
# 输出 3

id函数

查看对象的内存地址

a = 10
print(id(a))
# 输出 4475016592

上面这段代码中,a是一个整数型对象,输出的4475016592是该对象在内存中地址位置,所有的对象都需要占内存空间,所以都会分配一个内存地址,这个内存地址在对象创建后是固定的直到对象销毁。

isinstance函数

查看a是否为b的实例

#########################################################
# isinstance(a,b) - 查看a是否为b的实例                       #
#############################################################
class A:
    pass
# 创建实例
a = A()
print(isinstance(a,A))
# 输出True

print(isinstance(10,int))
# True

issubclass函数

查看a是否为b的子类,a与b必须为class,不能是实例

#########################################################
# issubclass(a,b) 查看a是否为b的子类,a与b必须为class,不能是实例 #
#############################################################
class A:
    pass

class B(A):
    pass

print(issubclass(B,A))
# 输出True

setattr函数

给对象设置属性值或者新增属性

#############################################################
# setattr - 给对象设置属性值或者新增属性                         #
# setattr(class, attr, value)                               #
#############################################################
class A:
    pass

# 给类A添加一个name属性
# 如果属性不存在,就会添加新属性,已经存在就会修改属性值为新值
setattr(A,"name", "luxp")
print(A.name)
#输出 luxp

# 给类A添加一个新的方法sum
setattr(A,"sum", lambda x,y:x+y)
# 调用sum
A.sum(2,3)
# 输出 5

# 也可以给实例添加属性
# 实例的属性只属于实例自身, 类添加的属性会在所有实例上立即生效
# ——————————————————————————————————————————————————————
a = A()
setattr(a, "sum", lambda x,y:x+y)
a.sum(2,3)
# 输出

 

getattr函数

获得对象属性

#############################################################
# getattr - 获得对象属性                                      #
# getattr(obj, attr, val)                              #
#############################################################

class A:
    name = "luxp"

# 如果对象的obj.key不存在,那么就使用val值
print(getattr(A, "name", "python-xp.com"))
# 输出 python-xp.com

# sex 属性不存在
print(getattr(A, "sex", "女"))
# 输出 女

hasattr函数

判断对象属性是否存在

#############################################################
# hasattr - 判断对象属性是否存在                               #
# hasattr(obj, attr)                                   #
#############################################################
class A:
    name = "python-xp.com"
print(hasattr(A, "name"))
# True
print(hasattr(A, "sex"))
# False

delattr函数

删除对象存在的属性

#############################################################
# delattr - 删除对象存在的属性                                 #
# delattr(obj, attr)                                   #
#############################################################
delattr(A, "sex")

callable函数

对象属性是否可以调用

#############################################################
# callable - 对象属性是否可以调用                              #
# callable(obj, attr)                                  #
#############################################################
class A:
    name = "luxp"
    def sum(self, x,y):
        return x+y

# 类与类的方法都是可调用的,类变量无法调用
print(callable(A))
# True
print(callable(A.name))
# False
print(callable(A.sum))
# True

 

dir函数

查看对象的所有属性

#############################################################
# dir - 查看对象的所有属性                                     #
# dir(obj)                                             #
#############################################################
# 查看字符串类型所有属性
dir(str)

# 查看列表类型所有属性
dir(list)

# 查看A类的所有属性
dir(A)

通过dir查看内置对象的方法,可以省略翻看手册的很多时间

help函数

查看对象的帮助信息

#############################################################
# help - 查看对象的帮助信息                                    #
# help(obj)                                            #
#############################################################
help(max)
help(getattr)

help也是经常用的技巧,可以快速的获得帮助信息

 


Python学习手册-