①format 字符串格式化功能一个是常用的%, 还有一个是format
'''format 字符串格式化功能'''
#
ret1 = "今天是{0}, {0}, {0}".format("国庆节")
# 今天是国庆节, 国庆节, 国庆节
ret2 = "你好, 我是{},我今年{}, 我的名字叫{}".format("小小", "26岁", "小小")
# 你好, 我是小小,我今年26岁, 我的名字叫小小
ret3 = "你好, 我是{0},我今年{1}, 我的名字叫{0}".format("小小", "26岁")
# 你好, 我是小小,我今年26岁, 我的名字叫小小
②hasattr() 函数用于判断对象是否包含对应的属性和方法。
class A(object):
a = 10
b = 20
c = 30
def make_cool(self):
pass
print(hasattr(A, 'a')) # True
print(hasattr(A, 'b')) # True
print(hasattr(A, 'c')) # True
print(hasattr(A, 'd')) # False
print(hasattr(A, "make_cool"))# True
③getattr() 函数用于返回一个对象属性值。
class A(object):
name = "小小"
a = A()
ret1 = getattr(a, 'name')
print(ret1) # 小小
ret2 = getattr(a, 'age')
print(ret2) # AttributeError: 'A' object has no attribute 'age'
ret3 = getattr(a, 'age', 13) # 第三个参数'13'是一个默认值,
# 当a 没有age属性的时候会使用, 有age属性则不使用默认值,例如ret4
# 但是不会对a对象造成影响, 只是为了获取ret3的时候不报错
print(ret3) # 13
ret4 = getttr(a, 'name', '大大')
print(ret4) # "小小"
④setattr()函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的
class test_setattr():
name = "小小"
demo1 = test_setattr()
ret_get_name_1 = getattr(demo1, 'name') # 小小
# ret_get_age_1 = getattr(demo1, 'age') # test_setattr' object has no attribute 'age'
setattr(demo1, 'name', "大大")
setattr(demo1, 'age', 15)
ret_get_name_2 = getattr(demo1, 'name') # 大大
ret_get_age_2 = getattr(demo1, 'age') # 15
print(ret_get_age_2)
print(ret_get_name_2)
⑤delattr函数用于删除属性。
class test_delattr():
a = 1
b = 2
c = 3
demo_3 = test_delattr()
print(demo_3.a) # 1
print(demo_3.b) # 2
print(demo_3.c) # 3
# 删除 a属性
delattr(test_delattr, 'a')
print(demo_3.b) # 2
print(demo_3.c) # 3
print(demo_3.a) # 'test_delattr' object has no attribute 'a'