对象相关的函数可以方便我们一些对对象属性的操作,包含
- 获取对象元素个数 - len
- 获取对象内存地址 - id
- 对象实例与子类 - isinstance, issubclass,
- 对象属性 - setattr, getattr,hasattr,delattr
- 对象可调用 - callable
- 对象帮助 - dir,help
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也是经常用的技巧,可以快速的获得帮助信息
讨论区