class A():
a1_1_1 = 'A类下的属性a1_1_1中的字符窜'
def a1(self):
self.a1_1 = '打印A类下的函数a1中的属性self.a1_1中的字符窜'
print('1>>' + self.a1_1)
def b1(self):
self.b1_1 = '打印A类下的函数b1中的属性self.b1_1中的字符窜'
print('2>>' + self.b1_1)
def c1(self):
emmm = self.a1_1_1
print('3>>' + emmm)
class B(A):
b1_1_1 = 'B类下的属性b1_1_1中的字符窜'
def __init__(self):
super().__init__()
prints = B()# 实例化
prints.a1()# 调用方法 a1
prints.b1()# 调用方法 b1
# setattr() 语法:setattr(object, name, value)
# object -- 对象。
# name -- 字符串,对象属性(这个属性可以存在,也可以不存在)
# value -- 属性值。
prints_setattr_1 = A()# 实例化
prints_setattr_2 = B()# 实例化
print('4>>' + prints_setattr_1.a1_1_1)# 直接打印属性a1_1_1
prints_setattr_2.c1()# 调用方法c1
# object -- 对象, name -- 字符串, value -- 属性值
#把原本 属性a1_1_1 的值变更成 value 中的值
setattr(prints_setattr_1, 'a1_1_1', '我是setattr | prints_setattr_1')
print('5>>' + prints_setattr_1.a1_1_1)
setattr(prints_setattr_2, 'a1_1_1', '我是setattr | prints_setattr_2')
print('6>>' + prints_setattr_2.a1_1_1)
setattr(prints_setattr_2, 'a1_1_1_1_1_1_1_1_1', '不存在 | 自动创建')
print('7>>' + prints_setattr_2.a1_1_1_1_1_1_1_1_1)
prints_setattr_2.c1()# 调用方法c1 | 打印出的结果是 '我是setattr | prints_setattr_2'
终端打印的结果:
1>>打印A类下的函数a1中的属性self.a1_1中的字符窜
2>>打印A类下的函数b1中的属性self.b1_1中的字符窜
4>>A类下的属性a1_1_1中的字符窜
3>>A类下的属性a1_1_1中的字符窜
5>>我是setattr | prints_setattr_1
6>>我是setattr | prints_setattr_2
7>>不存在 | 自动创建
3>>我是setattr | prints_setattr_2
|