|
发表于 2021-4-8 00:46:42
|
显示全部楼层
- 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
|
|